计算机视觉之旅(Day3)

article/2025/11/6 22:27:39

对不起大家,opencv的坑我尽量在年底更完,C++的坑已经基本更完了,在没有进一步深入学习C++之前可能这个系列已经算完了。不多说,我看看机器视觉的基本内容吧。

(一)基本构成

传统的机器视觉系统是由待测目标、灯源、镜头、相机、信号后端处理部分(包括图像采集和图像信号处理)。该系统主要应用于测量、检测、定位、识别,其发展趋势为高速化、高分辨率、彩色、低功耗、智能化、模块化、简单化。

(1)镜头

1.视野 (FOV)

图象采集设备所能够覆盖的范围,它可以是在监视器上可以见到的范围,也可以使设备所输出的数字图象所能覆盖的最大范围。

PS:焦距=工作距离*CCD尺寸/视野范围,焦距=工作距离*放大倍数/(放大倍数+1)

2.最大/最小工作距离Work Distance
从物镜到被检测物体的距离的范围,小于最小工作距离大于最大工作距离系统均不能正确成像。

 

3.景深(Depth Of Field
在某个调焦位置上,景深内的物体都可以清晰成像。景深可以用45度倾角的目标进行标定。一般情况下,只要清晰度能满足要求就可以了。

 

4.畸变

几何畸变指的是由于镜头方面的原因导致的图象范围内不同位置上的放大率存在的差异。几何畸变主要包括径向畸变和切向畸变。如枕形或桶形失真。

 

5.镜头接口

mC-MOUNT
镜头的标准接口之一,镜头的接口螺纹参数:公称直径:1,螺距:32牙

mCSMountCMount的一个变种,区别仅仅在于镜头定位面到图像传感器光敏面的距离的不同,CMount 17.5mmCSMount12.5mm。

mC/CS能够匹配的最大的图象传感器的尺寸不超过1“。

 

6.成像面

可以在镜头的像面上清晰成像的物方平面

7.光圈(F值)/相对孔径

光圈是一个用来控制镜头通光量装置,它通常是在镜头内,表达光圈大小。用F值来表示,如f1.4f2f2.8 etc. 相对孔径是镜头入瞳直径与焦距的比值,与光圈的F值是倒数关系。

PS:光圈大通光能力大,光圈小通光能力小;光圈小则景深大,光圈大则景深小;

8.焦距

  焦距是像方主面到像方焦点的距离。

PS:焦距越大,景深越短。

9.分辨率

测量系统能够重现的最小的细节的尺寸常常用每毫米线对来表示,也就是根据这个镜头能够分辨一毫米内多少对直线。选择镜头的时候必须注意厂商给出的分辨率的定义方式。

qlp/mm (line pair per mm)

lp/mm是表征分辨率的最简单的指标,但不是最佳指标,最佳的指标是镜头的调制传递函数MTF。

PS:镜头按照等效焦距分为广角镜头,中焦距镜头,长焦距镜头

广角镜头等效焦距小于标准镜头(等效焦距为50mm)的镜头。特点是最小工作距离短,景深大,视角大。常常表现为桶形畸变;中焦距镜头焦距介于广角镜头和长焦镜头之间的镜头。通常情况下畸变校正较好。长焦距镜头等效焦距超过200mm的镜头。工作距离长,放大比大,畸变常常表现为枕形状畸变。等效焦距计算方法: 等效焦距 = 实际焦距 * 焦距转换系数, 焦距转换系数(Focal Length Multiplier)= 43.27 / 图像传感器靶面对角线长度

按照用途分:微距镜头(或者称为显微镜头)和远心镜头

其中微距镜头用于拍摄较小的目标具有很大的放大比;远心指的是一种光学的设计模式:系统的出瞳和入瞳的位置在无限远处。物方远心镜头可以消除透视畸变,像方远心镜头可以获得更好的像面照度的均匀性。

对于曝光时间,光线强度,光圈,工作距离要做好量化。

 CCTV镜头专业摄影镜头远心镜头
价格
分辨率
畸变
焦距范围选择广泛广泛狭窄
使用灵活性
适合应用低精度测量标准精度测量/定位高精度测量/纵深测量

(2)相机

1.传感器的尺寸

图像传感器感光区域的面积大小。这个尺寸直接决定了整个系统的物理放大率。如:1/3“1/2”等。绝大多数模拟相机的传感器的长宽比例是4:3 (H:V),数字相机的长宽比例则包括多种:1:1,16:9,3:2 etc.

2.物理放大率

传感器感光面积于视野的比值,整个参数基本取决于镜头

3.系统放大率

 最后显示环节上目标的尺寸于实际目标尺寸的比值。系统放大率取决于物理放大率和显示系统的阐述。对于自动测量和检测系统而言,物理放大率具有关键的意义。系统放大率仅仅对于需要人机交互进行检测的系统有意义

4.像素(Pixel =picture+element

传感器感光面上最小感光单位。

5.分辨率

模拟制式相机的分辨率取决于传感器上像素的数目以及后期处理电路的质量,数字相机的传分辨率则直接取决与传感器上像素的数目。

 

6.像素长宽比

指传感器上像素水平和垂直方向节距的比值,对于正方形的象素来说,其比值为11。此参数,对于系统的标定有直接影响。

7.快门速度(Shutter Speed

CCD/CMOS相机多数采用电子快门,通过电信号脉冲的宽度来控制传感器的光积分(曝光)时间。对于一般性能的的相机快门速度可以达到1/10000-1/100000秒。

8.帧频率(Frame Rate

 相机每秒中能够输出图象的帧数,对于模拟制式相机,这个频率是固定值,对于数字相机,是个可变的值

 

9.像素速率(Pixel Rate

相机每秒中能够输出像素的个数,仅仅对于数字相机有意义。

10.卷帘快门(Rolling Shutter)

多数CMOS图象传感器上使用的快门,其特征是逐行曝光,每一行的曝光时间不一致。

 

11.全局快门(Global Shutter

CCD传感器和极少数CMOS传感器采用的快门,传感器上所有像素同时刻曝光。

12.相机扫描方式:隔行扫描( Interlace )和逐行扫描( Progressive scan

 

13.异步触发

通常情况下相机是一帧一帧拍摄的,所以进行高速拍摄的时候最高的同步精度不可能超过一帧图像的周期,对于某些支持异步触发的相机,可以在当前帧扫描尚未完成的情况下,将当前帧抛弃,直接开始新一帧图象的扫描,可以使得告诉拍摄的同步精度达到一行的扫描周期。

 

14.最低照度

又称灵敏度,衡量相机对光线敏感程度的指标。通常情况下是指相机获得30%最大输出值时候所需的照度。单位是Lux。

 

15.局部扫描

多数数字相机支持仅仅输出传感器上某一部分像素,这些像素位于某个矩形窗口内。通过具备扫描可以获得更高的桢频率。

16.传感器的光谱

17.信号格式
模拟图象信号的,格式包括:复合视频信号,Y/C分离信号,RGB分量信号。绝大多数周边设备都能够兼容这些信号格式。通常情况下对于彩色视频信号,Y/C分离传输的方式优于复合视频传输的方式,RGB分量传输的方式又优于Y/C分离传输方式。数字相机的信号传输格式更为复杂,目前普遍应用的包括:*IEEE-1394(Fire Wire),*USB2.0,*CameraLink*Ethernet,包括传输未经压缩影像的千兆协议和传输经过压缩影像的百兆协议。上述数字相机的传输方式无论是在机械上还是在电气上都是不兼容的。

(3)光源

照明系统是机器视觉系统最为关键的部分,往往关系到系统的成败。其目的:将目标与背景尽可能地明显区分,穏定均匀的光源極其重要,光源是基准,打光是艺术。光源的种类有高频荧光灯,光纤卤素光源,LED光源。照射方式有:背光——测量系统的最佳选择,亮场——最直接的照明,暗场——适合光滑表面的照明,结构光——最简便的三维测量方法影子的利用——最不直接的测量,同轴光——昂贵的灯。

对于光源的颜色选择,应注意考虑目标物识别。

(2)获得完美图像的要素

1.系统精度:方向系统精度=视野范围÷CCD芯片象素数量,该指标取决于,相机分辨率及视野(FOV

2.最佳视野:让视觉系统关心的部分尽可能充满视野。通俗来说,FOV越小越。相机分辨率相同视野越小系统精度越高视野,相同相机分辨率越高系统精度越高 。

3.清晰成象:确定图像中所要检测的部分处于清晰的焦距之内,当图像中检测部分不处于同一焦平面时,需要考虑镜头的景深。

每一款镜头都有固定的“最短焦距”,每一款镜头相对于固定的光圈,都有自己固定的景深,缩小光圈可以加大景深。同时为保证正确曝光需要提高光强,小光圈拍照,可以使图像获得更多“细节”,图像效果更好。

4.避免畸变:在定位及高精度测量的系统中,使用远心镜头进行系统标定

5.保持待测物体在成象中大小一致,控制待测目标位置,相机拍照角度

6.图像中待测部分反差最大化,选择适合的灯源

7.恰当的照明与曝光:•如果图像中待测区域处于阴影之下,图像将不能提供足够的反差,这将严重影响系统检测的精度;如果照明过亮,区域内亮部的光线会反射进暗部的区域,造成暗部区域内的细节损失,如果曝光过度,会产生CCD溢出”现象;如果照明系统发生明暗变化,会造成图像明暗变化。这将直接影响系统运行的稳定性;注意系统周围环境的影响

 


http://chatgpt.dhexx.cn/article/oWlTmoKI.shtml

相关文章

交错(拉丝)(Interlace) 与 反胶卷过带

第一部分——交错(拉丝)(Interlace)的产生 引用了相当多网友的分析与结论,恕我不能依次注明。分析主要来自“[SilkyBible] 视频知识系列”,就主要概念的主要影响因素进行了一点分析。如果有错误&#xff0c…

二分法之最大子段和

1.问题描述:给定一个数组,找出其中可以构成最大数的子段,子段和是由连续的子段构成的;给定有n个整数(可能为负整数)组成的序列a1,a2,...,an,求该序列连续的子段和的最大值。 2.设计思路:对于一个连续的子段和&#xf…

java动态规划求最大子段和_动态规划-最大子段和

2018-01-14 21:14:58 一、最大子段和问题 问题描述:给定n个整数(可能有负数)组成的序列a1,a2,...,an,求该序列的最大子段和。如果所有整数都是负数,那么定义其最大子段和为0。 方法一、最大子段和的简单算法…

四种方法求解最大子段和问题

题目描述 给定一段长度为n的序列,我们需要找到其中一个连续的子段,使这个子段中各个元素加和最大,如果这个数组中全为负整数,我们就定义这个子段和为0. 题目分析 首先我们的目的是找一个局部的子段但加和是全局最大,…

最大子段和问题(分治法和动态规划)

什么是最大子段和,通俗点讲: 最大子段和就是给了一些数,然后你从中找了几个连续的数,这组连续的数的和比任意一组连续的数的和都大,那么你找的这几个连续的数的和就是这些数的最大子段和。 通俗的听不懂你就看这里&am…

最大子段求和

3种算法:最大子段求和 一、问题分析 问题:给定有n个整数(可能为负整数)组成的序列 a 1 , a 2 , . . . , a n , a_1,a_2,...,a_n, a1​,a2​,...,an​,求该序列连续的子段和的最大值。 如果该子段的所有元素和是负整数时定义其最大子段和为0。 简易算法…

最大子段和问题(3种方法)

给定由n个整数(可能为负整数)组成的序列a1,a2, a3… , an, 寻找它的某个连续子段,使得其和最大。例如( -2,11,-4,13,-5,-2 )最大子段是{ 11,-4,13 }其和为20。 1、最大字段和问题的简单算法 (1)枚举法求解&#xff1…

最大子段和(动态规划算法)

最大子段和(动态规划算法) 文章目录 最大子段和(动态规划算法)一、思路二、伪代码三、C代码四、输入实例 一、思路 D[i]表示从i开始的最大字段和。(但我们不是从前往后找字段结束位置) 根据递推公式&#x…

最大子段和——用蛮力算法,分治策略,动态规划算法三种求法(C语言)

目录 一、题目 二、算法求解 1、蛮力算法 伪代码 算法分析 程序 2、分治策略 伪代码 算法分析 程序 3、动态规划算法 伪代码 算法分析 程序 一、题目 设A<a1,a2,...,an>是n个整数的序列&#xff0c;称<ai,....,aj>为该序列的连续子序列&#xff0c;其…

归并排序 java实现_java实现归并排序

归并排序 归并排序&#xff0c;指的是将两个已经排序的序列合并成一个序列的操作。 归并操作的过程如下&#xff1a; 申请空间&#xff0c;使其大小为两个已经排序序列之和&#xff0c;该空间用来存放合并后的序列 设定两个指针&#xff0c;最初位置分别为两个已经排序序列的起…

Java八大算法:归并排序

一、什么是归并排序&#xff1f; 1.概念 归并排序&#xff08;Merge sort&#xff09;是建立在归并操作上的一种有效的排序算法&#xff0c;归并排序对序列的元素进行逐层折半分组&#xff0c;然后从最小分组开始比较排序&#xff0c;合并成一个大的分组&#xff0c;逐层进行…

归并排序(Java代码实现)

基本思想&#xff1a; 将两个或两个以上的有序表合并成一个有序表的过程。常用的归并为2-路归并&#xff0c;就是将两个有序表合为一个有序表。 过程&#xff1a; 先来看一张示意图&#xff1a; 可以看出&#xff0c;归并排序分为分解和合并两个步骤。 分解就是将原数组分解…

归并排序(Java实现)

归并排序&#xff08;Merge Sort&#xff09;是建立在归并操作上的一种有效&#xff0c;稳定的排序算法&#xff0c;该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先…

归并排序java详解

import java.util.Arrays;public class Mergesort {public static void main(String[] args) {int arr[]{8,4,5,7,1,3,6,2};int temp[]new int[arr.length];//归并排序需要一个额外空间mergeSort(arr,0,arr.length-1,temp);System.out.println("归并排序后" Arrays.t…

java归并排序(含归并排序代码)

目录 一&#xff1a;归并排序的思想 二&#xff1a;归并排序代码 三&#xff1a;归并排序结果​ 一&#xff1a;归并排序的思想 归并排序&#xff08;Merge Sort&#xff09; 当我们要排序这样一个数组的时候&#xff0c;归并排序法首先将这个数组分成一半。如图&#xff1a…

归并排序java代码实现

归并排序,是一种分治算法。利用递归&#xff0c;将一个大的数据集合分解成小的子集合。将子集合排好序后&#xff0c;再合并起来。归并排序不是原地排序算法,因为它使用到了临时空间&#xff0c;这也是归并排序没有快速排序应用广泛的主要原因&#xff0c;虽然归并排序的时间复…

分治算法实现经典归并排序java实现

目录 1.什么是分治算法 分治法 基本思想 2.分治算法的体现:归并排序 归并排序 基本思想 3.代码实现 1.什么是分治算法 分治法 分治法&#xff0c;字面意思是“分而治之”&#xff0c;就是把一个复杂的1问题分成两个或多个相同或相似的子问题&#xff0c;再把子问题分成…

归并排序 Java实现 简单易懂

归并排序 归并排序采用的是分治(divide-and-conquer)法思想。 1.基本思想&#xff1a; 将待排序元素分成大小大致相同的2个子集合&#xff0c;分别对2个子集合进行排序&#xff0c;最终将排好序的子集合合并成为所要求的排好序的集合。 2.执行过程&#xff1a; 3.时间复杂度…

归并排序java版

归并排序java版 归并排序java版 归并排序java版 好长时间没写过归并排序&#xff0c;在学习并发中又遇到了一个归并排序的demo&#xff0c;于是就想试试自己还能不能写出来&#xff0c;结果没写出来…&#xff0c;看了一些文章后&#xff0c;整理了一下思路&#xff0c;把归并…

归并排序(Java)

归并排序 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列有序&a…