工业相机基础知识详述 —— 焦平面,像平面,弥散圆,光圈,分辨率,景深,接口,靶面尺寸

一、焦平面

想到焦平面,很多人不由自主就想到不就是焦点所在的垂直于光轴的平面吗?其实其背后隐藏这更多的东西。
在这里插入图片描述

1)焦点不止一个
对于一般拍摄场景来说,光通过一个凸透镜,汇聚不到一个点,越靠近中轴线的光束聚焦得越远,越靠近透镜边缘的光聚焦得越近,这是光学误差的一种,叫球差,如下图所示。只在理想情况下,光从无限远汇聚到凸透镜,才会汇聚一点。
在这里插入图片描述
第一焦平面:过第一焦点且垂直于系统主光轴的平面称第一焦平面,又称前焦面或物方焦面,一般为边缘光束汇聚的焦点;
第二焦平面:过第二焦点且垂直于系统主光轴的平面称第二焦平面,又称后焦面或象方焦面,平面一般为接近凸透镜中心部分的光汇集的焦点。
工业相机镜头是由多片薄的凸透镜组成,其焦距是镜头的中心点到胶平面(胶片或CCD)上所形成的清晰影像之间的距离,也就是下文的像距。
工业相机镜头焦距常规的有6mm, 8mm, 12mm,16mm,25mm ,35mm , 50mm,75mm。其选型公式为:
焦距(f)=工作距离(WD)*CCD靶面型号尺寸(V或者H)/视场大小或者物体高度(FOV)
所以在WD和CCD尺寸确定的情况下,焦距数值小,视角大,所观察的范围也大;焦距数值大,视角小,观察范围小。
2)焦平面或者是焦距和什么相关?
根据公式:
1/u(物距)+1/v(像距)=1/f(透镜焦距)
此公式不太适用于工业相机成像,只适用于理想情况单凸透镜成像,所以要区分相机的焦距与单片凸透镜的焦距,工业相机焦距等于像距,都在感光区,1/物距基本忽略不计。
3)对焦和变焦
对焦通常指调整镜片组和底片(传感器平面)之间的距离,从而使被摄物在CCD/CMOS上成的像清晰。
变焦就是改变镜头的焦距(准确说是像距),以改变拍摄的视角,也就是通常所说的把被摄体拉近或推远。例如18-55mm和70-200mm镜头就是典型的变焦镜头。焦距越长,视角越窄。

二、像平面

像平面是指成像平面,可以理解为用胶片相机拍摄,那个胶卷就是像平面,要是用数码相机拍摄,那么像平面就是CCD等感光元件。所以对于我们来说,像平面是已经固定的,根据上文,像距与焦距相同。

三、弥散圆

物点成像时,由于像差,其成像光束不能会聚于一点,上面解释了,所以会在像平面/CCD上形成一个扩散的圆形投影,成为弥散圆。当使点光源经过镜头在像平面成像,如果此时保持镜头与像平面距离不变,沿光轴方向前后移动点光源,则像平面上成的像就会成为有一定直径的圆形,就叫弥散圆。
弥散圆大小取决于镜头孔径(光圈)和点光源偏离程度(物距)。
通常情况下,肉眼分辨率为二千分之一至五千分之一。人眼在明视距离(眼睛正前方30厘米)能够分辨的最小的物体大约为0.125mm。所以,弥散圆放大在7寸照片(这是个常用尺寸)也只能是0.125mm以内,也就是图像对角线长度的1/1730左右,所以,拍摄的图片上看不到弥散圆。

四、光圈

光圈是一个用来控制光线通进入镜头的装置,它通常是在镜头内,对于已经制造好的镜头,我们不可以随意的改变镜头的镜头,但是可以通过在镜头内部加入多边形或者圆形,并且面积可变的孔径光栅来达到控制镜头通光量。
这点一般对于工业相机来讲不适用,因为工业相机光圈已经是固定好的,一般不支持增加,但可以手动调整。
光圈(Aperture)在工业相机镜头中是由几片极薄的金属片组成,中间能通过光线。通过改变孔的大小来控制进入工业镜头的光线量。光圈开得越大,通过工业镜头进入的光量也就越多。光圈的值通常用f来表示。
在这里插入图片描述

五、景深(Depth of Field,DOF)

景深是指在物体前后一定距离内,其影像仍然清晰的范围。景深随镜头的光圈值、焦距、拍摄距离而变化,光圈越大,景深越小,光圈越小,景深越大。焦距越长,景深越小,焦距越短,景深越大。距离拍摄物体越近时,景深越小,拍摄距离越远,景深越大。

六、分辨率

相机每次采集图像的像素点数(Pixels),对于工业数字相机一般是直接与光电传感器的像元数对应的。目前工业数字相机像元尺寸一般为3μm-10μm,一般像元尺寸越小,制造难度越大,图像质量也越不容易提高。分辨率影响采集图像的质量,在对同样大的视场(景物范围)成像时,分辨率越高,对细节的展示越明显。
像素深度:每位像素数据的位数,常见的是8bit,10bit,12bit。分辨率和像素深度共同决定了图像的大小。例如对于像素深度为8bit的500万像素,则整张图片应该有500万*8/1024/1024=37M。

七、接口

相机与镜头的连接方式包括C、CS、F、V、T2、Leica、M42x1 M75x0.75。接口类型的不同和镜头性能及质量并无直接关系,只是接口方式的不同,一般可以也找到各种常用接口之间的转接口。
C接口和CS接口是工业摄像头最常见的国际标准接口,为1英寸-32UN英制螺纹连接口,C型接口和CS型接口的螺纹连接是一样的,区别在于C型接口的后截距为17.5mm,CS型接口的后截距为12.5mm。所以CS型接口的摄像头可以和C口及CS口的镜头连接使用,只是使用C口镜头时需要加一个5mm的接圈;C型接口的摄像头不能用CS口的镜头。
F接口镜头是尼康镜头的接口标准,所以又称尼康口,也是工业摄像头中常用的类型,一般摄像头靶面大于1英寸时需用F口的镜头。
V接口镜头是著名的专业镜头品牌施奈德镜头所主要使用的标准,一般也用于摄像头靶面较大或特殊用途的镜头。
在光学系统中,最后一个光学镜片表面的顶点到像面的距离称为后截距。

八、靶面尺寸

图像传感器的感光部分的大小。 常见的靶面有1/4’’、1/3’’、1/2’’、2/3’’、1’'等几种。
尺寸明细可见下方链接,非常细。
靶面尺寸和镜头焦距配套对应的视场角

镜头:

具体镜头概念可见:
镜头基础知识
共轭镜头:
这个概念听上去复杂,其实很简单,分为两种,有限共轭镜头和无穷共轭镜头。有限共轭镜头:像点对应的物点只能在有限的距离内,工业微距镜头大多是有限共轭镜头。
无穷共轭镜头是指:像点对应的物点在无穷远处(可以理解为很远处)。手机摄像头、普通镜头都是无穷共轭镜头。

蓝光和红光的区别

蓝光由于波长更短,衍射效应更弱,因此刻画细节的能力更强,拍摄微小的物体,蓝光是首选。黑白CCD对红光更敏感,但其实这优势并不大,或许在需要尽量减轻环境光干扰的时候,有一点作用。红色光源通常要比蓝色光源便宜。

曝光和增益

曝光(Exposure)是图像传感器进行感光的过程,在曝光过程中,CCD/CMOS收集光子并转换成电荷;曝光结束后,CCD/CMOS通过一定的方式将电荷移出。从光曝光对照片质量的影响很大,如果曝光过度,则照片过亮,失去图像细节;如果曝光不足,则照片过暗,同样会失去图像细节。控制曝光就是控制总的光通量,也就是曝光过程中到达CCD/CMOS表面的光子的总和。
增益是指经过双采样之后的模拟信号的放大增益量,通常增益值越高,相机感应光的能力越强,相应的噪点也越多,画质也越差。
曝光和增益是直接控制传感器(CCD/CMOS)上读出来的数据,是要优先调节的,以调节曝光时间为主。在不过曝的前提下,增加曝光时间可以增加信噪比,使图像清晰。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

相机标定(二)深入理解四大坐标系与其变换关系

一、前言 视觉系统一共有四个坐标系:像素平面坐标系(u,v)、图像坐标系(x,y)、相机坐标系(Xc,Yc,Zc)和世界坐标系(Xw,Yw,Zw),如下图所示。每种坐标系之间均存…

相机标定(三) —— 畸变校正

一、前言 根据针孔模型,物体和成像之间参数会满足相似三角形的关系。但现实中会存在装配误差和透视失真等原因,导致这种关系无法成立,使理想成像与实际成像存在误差,这种误差即称为畸变。 畸变分为径向畸变,切向畸变和…

SVG技术入门:线条动画实现原理

相信大家都见到过这样神奇的技术:一副线条构成的画能自动画出自己。非常的酷。Jake Archibald是这种SVG技术的首创者,并且写了一篇非常好的文章来描述它是如何实现的。Brian Suda也在24 Ways网站上讨论过它。 Polygon使用它在一篇设计方面的文章里创造出…

机器学习——人工神经网络之BP算法编程(python二分类数据集:马疝病数据集)

目录 一、理论知识回顾 1、神经网络模型 2、明确任务以及参数 1)待估参数: 2)超参数: 3)任务 3、神经网络数学模型定义 1)激活函数 ​ 2)各层权重、阈值定义 3)各层输入输…

Halcon例程(基于多个标定图的单目相机标定)详解—— Camera_calibration_multi_image.hdev

一、前言 在我的工业相机专栏里已经将相机标定涉及到的理论部分讲解完毕,为什么要标定以及标定要求出什么参数呢,用一个Halcon 例程来帮助理解。 这个例程是比较经典的标定程序,基本将标定过程讲的比较清楚,用的标定图像是系统自…

SkipList 跳表

为什么选择跳表 目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树…

机器学习——深度学习之卷积神经网络(CNN)——LeNet卷积神经网络结构

目录 一、卷积神经网络 1、卷积神经的作用 2、LeNet 1)数据库准备——minst 2)模型 二、关于卷积神经网络结构的一些术语定义 1、特征图(Feature map) 2、height(长度)、width(宽度&…

工业相机(3D)主要参数详述

一、前言 准确的完成相机选型是一个视觉工程师必备的技能,而选型前必须对其内部参数了如指掌。工业相机是一种比较复杂的产品,其参数很多,每个参数可能会有不同的标准,下面对主要的参数会做比较详细的阐述。 二、参数详述 2.1 …

JAVA8永久代

在Java虚拟机(以下简称JVM)中,类包含其对应的元数据,比如类的层级信息,方法数据和方法信息(如字节码,栈和变量大小),运行时常量池,已确定的符号引用和虚方法表…

Struts 2初体验

Struts2简介: Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。 Struts 2 目录结构:     apps目录:Struts2示例…

机器学习——深度学习之数据库和自编码器

目录 一、数据库——数据获取 1、Mnist 2、ImageNet 二、自编码器(Auto-encoder)——参数初始化 1、功能 2、基本思想 1)训练第一层 2)训练第二层及以后的神经网络 ​ 3)利用BP对整个神经网络的参数初始值进…

Halcon例程详解 (深度图转换为3D图像)—— xyz_attrib_to_object_model_3d

一、前言 深度图向点云图进行转换是进行3D检测项目时会遇到的问题,halcon里也有针对此问题的相关例程,下面对此例程进行分析。通过学习此例程,我们可以掌握如何将一张深度图像和一张正常二维图像转换为3D点云。 二、分析 * 初始化界面 dev…

动态代理之Cglib浅析

什么是Cglib Cglib是一个强大的,高性能,高质量的代码生成类库。它可以在运行期扩展JAVA类与实现JAVA接口。其底层实现是通过ASM字节码处理框架来转换字节码并生成新的类。大部分功能实际上是ASM所提供的,Cglib只是封装了ASM,简化了…

机器学习——深度学习之卷积神经网络(CNN)——AlexNet卷积神经网络结构

目录 一、AlexNet卷积神经网络结构模型 1、数据库ImageNet 2、AlexNet第一层卷积层 二、AlexNet卷积神经网络的改进 1、非线性变化函数的改变——ReLU 2、最大池化(Max Pooling)概念的提出——卷积神经网络通用 1)池化层 2&#xff0…

C#委托——基础2

在上一篇随笔中,简要说明了怎样定义委托,定义事件,订阅事件,最后也实现了效果,就是当员工类的某个对象,执行某个事件时,委托事件被触发,后面也得到了结果,但是想象一下实…

机器学习——深度学习之编程工具、流行网络结构、卷积神经网络结构的应用

目录 一、编程工具 caffe实现LENET-5 二、流行的网络结构 1、VGGNET 2、Googlenet ​ 3、ResNet​ ​ 三、卷积神经网络的应用 1、人脸识别 ​ 2、人脸验证 3、人脸特征点检测 4、卷积神经网络压缩 一、编程工具 caffe的优点:模型标准化,源代码…

Halcon例程详解(激光三角系统标定)—— calibrate_sheet_of_light_calplate.hdev

前言 1 激光三角测距 激光三角测距法原理很简单,是通过一束激光以一定的入射角度照射被测目标,激光在目标表面会产生漫反射,在另一角度利用透镜对反射激光汇聚成像,光斑成像在CCD(Charge-coupled Device,感光耦合组件)位置传感器上。当被测物体沿激光方向发生移动时,…

【tenserflow】——数据类型以及常用属性

目录 一、什么是Tensor? 二、Tensorflow常见数据类型 三、Tensorflow常见属性device\cpu\gpu\ndim\shape\rank等 1、创建一个tensor 1)tf.constant() 2)tf.Variable() 2、判断一个变量是否为tensor张量 3、生成不同设备(cpu,gpu&#x…

网页开发浏览器兼容性问题

1、在ie6下的双margin问题 在ie6下,设置了float的元素,以float:left为例,如图所示。会出现第一个浮动元素,即相对于父级元素浮动的,会出现双倍margin的问题。 注意仅仅是相对于父级元素浮动的,即第一个会出…

【tensorflow】——创建tensor的方法

目录 1、tf.constant() 2、tf.Variable() 3、tf.zeros():用0去填充指定形状的数组 4、tf.convert_to_tensor(a,dtypetf.int32) 5、tf.ones():用1去填充指定形状的数组 6、tf.fill():用指定的元素去填充指定形状的数组 7、随机化初始化进行创建 1)normal正态分…