- 博客(24)
- 收藏
- 关注
原创 镜头放大倍率和像素之间的关系
同一相机下,放大倍率越大,视野越小,精度值越小,精度越高;所以在相机、拍摄距离固定时,使用高倍率的镜头,会用相同的像素表示更小的视野,呈现更多的细节;使用低倍率的镜头,会用相同的像素表示更大的视野,图像就会相对粗糙。由于拍摄距离相同,根据三角函数关系,水平方向单个像素在实际场景中的长度。水平方向上,单个像素对应的视野角度。垂直方向上,单个像素对应的视野角度。时,水平方向单个像素对应的实际长度。,垂直方向单个像素对应的实际长度。,垂直方向单个像素对应的实际长度。水平方向单个像素对应的实际长度。
2025-02-08 14:12:16
1268
原创 opencv下载安装及VS配置(笔记)
找到opencv文件夹,依次选择build->x64->vc16->bin,复制路径D:\opencv\build\x64\vc16\bin;右键此电脑->属性->高级系统设置->环境变量->系统变量,找到Path变量,选中后点击编辑,添加D:\opencv\build\x64\vc16\lib目录下的依赖项,添加附加依赖项:项目->属性->链接器->输入->附加依赖项->编辑。添加包含目录:项目->属性->VC++目录->包含目录->编辑。添加库目录:项目->属性->VC++目录->库目录->编辑。
2024-12-13 11:08:25
2595
原创 机器视觉-相机、镜头、光源(总结)
光照的目的,是提高对比度,突出目标对象,以便提取出其轮廓等物理特征。光源作为辅助成像设备,是机器视觉系统的重要组成部分,它为机器视觉系统的图像获取提供足够的光线。
2024-10-26 14:00:29
3189
3
原创 相机、镜头参数详解以及相关计算公式
一般通过调整通光孔径大小来调节光圈,完整的光圈数值系列如下:F1,F1.4,F2,F2.8,F4,F5.6,F8,F11,F16,F22,F32,F44,F64。/CMOS)尺寸的表示方法大惑不解,因为像1/1.8英寸、2/3英寸之类的尺寸,既不是任何一条边的尺寸,也不是其对角线尺寸,看着这样的尺寸,往往难以形成具体尺寸大小的概念。图像传感器的感光部分的大小,通常指的是图像传感器的对角线长度,在同样镜头情况下,靶面越大,视场越大,靶面越小,视场越小。焦距越小,视角越大,最小工作距离越短,视野越大。
2024-09-25 16:17:35
12656
2
原创 C#图像处理学习笔记(屏幕截取,打开保存图像、旋转图像、黑白、马赛克、降低亮度、浮雕)
4)、接下来布置按钮,Button1:“打开”,Button2:“保存”,Button3:“添加暗角”,Button4:“降低亮度”,Button5:“去色”,Button6:“浮雕”,Button7:“马赛克”,Button8:“扩散”,Button9:“清除图片”,Button10:“保存2”,Button11:“油画效果”,Button12:“柔化”,Button13:“截屏”,Button14:“旋转90”。通过视图-工具箱,把工具箱调出来,在工具箱选择需要的控件。提示:右键控件属性,即可改名。
2024-09-20 15:31:44
1564
原创 Python基础(字典、集合)
Python中字典的每个元素都包含两部分,键(key)值(value),键和值之间使用冒号(:)分隔,相邻元素使用逗号(,)分隔。因为字典中的元素是无序的,每个元素的位置不固定,所以字典也不能像列表和元组那样,采用切片的方式一次性访问多个元素。2)、通过get()方法访问:使用get()访问时,当指定的键不存在,get()不会抛出异常。key可以是任意的数据类型,但不能出现可变的数据类型,保证key唯一。如果key值不存在,且没设置value,返回None,并且把新设置的key和value保存到字典中。
2024-09-18 16:53:12
613
原创 Python基础(列表、元组)
列表中的元素数据类型可以不同,可以包含整数、浮点数、复数、列表、元组、字典、集合等。注意:在使用list()函数创建列表时,一定要注意双括号,使用list函数,其实是把已创建的对象(例如字符串、元组、集合等)转换为列表。1)、索引下标访问:列表中的元素是有序的,每个元素都有一个唯一的索引(下标)。列表是可变的,说明可以修改列表中的元素,可以通过索引下标来修改元素,也可以使用列表方法来操作列表。列表:列表是动态数组,列表元素可以更改,包括修改元素值,删除插入元素,所以列表是可变序列。
2024-09-16 16:13:28
974
原创 LabView学习笔记(数值、枚举、字符串)
在程序框图中放置条件结构,把枚举控件与条件结构连接起来,连接后,条件结构的标签值会自动改变为枚举控件的值,但是此时查看到缺少了一个分支,我们只要选中条件结构然后右键,选则在后面添加分支,即可出现缺少的条件分支。完整程序框图和运行结果如下 :输出结果为4,原因是无符号单字节整型的数值范围为0~255,所示最大值为255,而加的结果是265,比255大,所以多出来的值从0开始,多出10,从0开始即结果为9。添加枚举控件后,选中控件,鼠标右键,选中编辑项,然后就可以在弹出的对话框中编辑枚举值。
2024-09-13 17:14:20
1621
原创 LabView学习笔记(数组、簇)
1)、创建簇 :在前面板中,鼠标右键-数据容器-簇,即可创建一个簇,然后在里面放置不同类型的控件,即为簇的元素,在簇中放置数值输入控件,字符串显示控件和圆形指示灯控件,放置字符串显示控件和圆形圆形指示灯后,这两个控件都变为数值输入控件。然后在程序框图中,鼠标右键-数组-数组大小,添加两个数组大小的控件,分别将两个数组和数组大小的函数连接,最后在输出端创建显示控件,观察结果。基于以上案例,在程序框图中,鼠标右键-数组-索引数组,并将数组控件与其索引数组函数连接,设置索引值,然后创建显示控件,运行查看结果。
2024-09-12 13:46:40
1972
原创 LabView学习笔记(for循环、while循环、平铺式顺序结构、条件结构、事件结构)
LabView(Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序的执行顺序,而LabView则采用数据流编程方式,程序框中节点之间的数据流向决定了程序的执行顺序。VisualBasic、 C、C++、C#、Java这些语言使用文本方式编程。LabView用图标表示函数,用连线表示数据流向。
2024-09-09 15:33:43
2527
原创 相机、光源(结构光、面光源、红外紫外光源)
CMOS相机:CMOS称为“互补金属氧化物半导体”,CMOS可以将光敏原件、放大器、A/D转换器、存储器、数字信号处理器和计算机接口控制电路集成在一块硅片上,具有结构简单、处理功能多、速度快、耗电低、成本低等特点。常用的有C口,CS口,F口,M42口,M50口,M58口等。图像传感器的感光部分的大小,通常指的是图像传感器的对角线长度,在同样镜头情况下,靶面越大,视场越大,靶面越小,视场越小。相机的主要参数包括分辨率和像素、相机接口、帧率/行频、曝光值、光谱响应特性、靶面尺寸、白平衡。
2024-09-04 20:15:06
1477
原创 光源、镜头
3、像方远心镜头:像方主光线平行于光轴,使相机的芯片获得均匀的光线,因为只有平行于光轴的光线才能入射在CCD/CMOS芯片前面的微型镜片上,从而使图像不会出现阴影。光源包括条形光源、条形组合光源、背光源、同轴光源、无影光源、开孔面光源、球积分光源、球积分光源、环形光源、点光源、线性光源、红外光源、紫外光源等。2、物方远心镜头:物方主光线平行于光轴,物距发生改变时,像高不会发生改变,测得的物体尺寸大小不变,主要用于工业精密测量,其畸变极小。常用的固定接口有:C,CS,S口,F口,V口,M口等。
2024-08-30 19:50:18
1362
原创 OSI模型、TCP/IP协议
TCP/IP协议指的是能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP(文件传输协议)、SMTP(简单邮件传输协议)、TCP(传输控制协议)、UDP(用户数据包协议)、IP(网际互连协议)等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。简单来说,互联网相关各类协议簇的总称称为TCP/IP协议。应用层:应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的。
2024-08-13 13:28:29
716
1
原创 Python基础(选择结构(if-else)、循环结构(for)、range函数、contine和break、Random随机数类)
1、选择结构1)、单分支结构----if 语句当条件表达式成立,则执行代码块,执行完代码块继续往下执行;当条件表达式不成立,则直接跳过代码块执行后面的语句;注意:在python中没有区分代码块的{},在python中代码块的区分是用缩进来表示。2)、双分支结构----if-else语句当条件表达式成立,则执行if后面的代码块1;当条件表达式不成立,则执行else后面的代码块2;3)、多分支结构----if-elif-else当条件表达式1成立,则执行if后面的代码块1;
2024-08-12 16:02:03
1261
原创 C#文件操作
给定路径 D:/CODE/C#_testpath 下的文件,以下代码使用到命名空间:using System.IO;System.IO.File.Delete(文件全路径);示例:判断路径下的文件是否包含123的文件名,如果有则把文件名改为ddd。返回值:存在(True)、不存在(False)返回值:存在(True)、不存在(False)destfileName:改好后的文件路径。srcfileName:被改的文件路径。fullfileName:文件全路径。1)、判断文件是否存在。
2024-08-09 14:25:21
175
原创 C#基础(程序错误处理(try...catch...)、return、continue和break)
continue:continue语句在循环中发生特定条件时会中断一次迭代,并继续进行下一次迭代。可以在for循环和while循环中使用。当程序执行过程中,出现错误时可以捕捉错误,一旦程序报错则走catch中的代码,给出提示,并且可用return阻断程序继续往下执行。return:return语句用于终止当前的函数执行,并返回指定的值。可以用在任何函数中,包括方法、构造函数、属性等。是三个非常重要的关键字,可以用于控制程序流程,分别对应于跳过循环迭代、终止函数执行返回结果和跳出循环结构的操作。
2024-08-09 11:27:48
382
原创 C#基础(条件语句(if...else...、switch)、循环语句(for、while、do...while)、数组)
2)、do...while语句:先执行循环体,再判断条件表达式。while和do-while语句很相似,他们的区别在于while语句的循环体有可能一次也不执行,而。1)、if...语句、if...else...语句、if...else if...else语句、嵌套if...else...语句。静态初始话:指定数组元素的初始值和数组长度(也可以不指定,编译器会自动统计元素的个数。3)、数值元素的访问:通过下标访问,和c++一样,下标从0开始,到元素个数减一。2、数组的初始化:包括静态初始化和动态初始化。
2024-08-05 22:29:55
773
原创 C#基础(注释、变量常量、数据类型、运算符、输入输出、类型转换内置方法)
赋值运算符:简单赋值运算符(=)、加法赋值运算符(+=)、减法赋值运算符(-=)、乘法赋值运算符(*=)、除法赋值运算符(/=)、取余赋值运算符(%=);算术运算符:加(+)、减(-)、乘(*)、除(/)、取模(%);指针类型:指针类型变量存储另一个类型的内存地址,C#中的指针与C或C++中的指针有相同的功能,声明指针类型的语法: type* identifier;比较运算符:大于(>)、小于(=)、小于等于(
2024-08-02 16:56:31
703
原创 Python 基础(注释、关键字、标识符、数据类型)
print是python的输出函数,特点:在控制台可以查看到程序的执行结果,如果没有f这个符号,单引号中的{}就没有作用,f的作用是将变量名称对应的'变量值'输出。2、标识符:python的标识符由字母、数字、下划线组成,但是不能以数字开头,并且严格区分大小写。数据类型:python的数据类型有 字符串、整型、列表、元组、字典、布尔型等等。4)、字符串类型(str),有三种书写格式:单引号,双引号,三引号。5)、高级数据类型,可以存储多个数据的类型,包括列表、元组、集合等。
2024-08-01 17:52:18
684
原创 字符串截取、查找、替换(substr()、find_first_of()、find_last_of()、replace())
2、替换字符串(与内置的string.replace()不一样, 可以实现多个字符替换单个字符)1、截取某个字符之前或之后的字符串。
2024-07-16 02:37:48
319
原创 类型转换(wchar_t*/char*互转、TCHAR* /char*互转、string /double互转、long double转string)
7、long double 转string。1、char*转wchar_t*2、wchar_t*转char*5、string 转double。6、double 转string。3、TCHAR* 转char*4、char* 转TCHAR。
2024-07-15 13:42:22
339
原创 获取目录下的所有文件或文件夹、判断文件是否存在
/获取某个目录下的所有文件夹或者文件 getFiles(“文件夹路径”,返回该文件夹下所有文件的绝对路径)
2024-05-29 09:09:15
295
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人