机器视觉:工业镜头的主要参数

news2024/11/25 10:51:31

工业镜头是图像采集系统的重要光学设备。它的作用是将目标物体的像成在相机的感光面上。

一、工业镜头原理

镜头是对光线进行调制和变换,使目标能够成像到相机的感光芯片上。将不同折射率的硝材加工成高精度的曲面,再把这些曲面进行组合后设计成能够满足不同视觉检测要求的镜头。

二、工业镜头的主要参数

选择视觉系统的镜头时,一般要关注这些参数:焦距、视野、工作距离、景深、相对孔径、光圈、畸变、接口这8个参数。

焦距 Focal Length:当平行光射入凸透镜的时候,理想状态下,镜头可以将所有的光线聚焦在一个点上,光线聚集在一起的点就是焦点,透镜中心到焦点的距离就是焦距。焦距决定了镜头能够拍摄的画面范围。

视野 Field of View, FOV:视野,也称视场角,是指图像采集系统可以覆盖的范围,也就是相机实际拍到的尺寸。视野与镜头的焦距相关,焦距越小(也就是成像面距离透镜中心越近),可拍摄的视野范围越大。相反,焦距越大(也就是成像面距离透镜中心越远),可拍摄的视野范围越小。

视野与焦距的关系如下图所示:

3、工作距离 Working Distance WD:工作距离是指目标物体到镜头的最小距离。安装硬件系统时,需要考虑安装高度是否在工作距离内,否则不能清晰成像。

4、景深 Depth of Field:是指目标物体在聚焦清晰以后,在焦点前后都能清晰成像的范围。景深还分为前景深和后景深。前景深是靠近镜头一端的焦点前的清晰范围,前景深小于后景深。景深的变化受光圈值,焦距、拍摄距离的影响。

5、相对孔径:相对孔径D_{r}是镜头入射光孔径D,与焦距f的比值,通常会标注在镜头上。

6、光圈:光圈用于控制光线 通过镜头进入相机感光面的装置。光圈值F, 通常用镜头焦距f,和镜头入瞳的有效直径 D_{in}的比值表示,是相对孔径孔径D_{r}的倒数。

F=\frac{1}{D_{r}} = \frac{f}{D_{in}}

7、畸变:现实中,由于镜头材质和制造工艺的局限,镜头的特性无法与理想的成像系统完全吻合,难免会产生一定的失真,这个失真就是畸变。畸变是指目标物体平面的反射光,本应是直线,但是经过成像系统后,变成曲线。畸变会影响目标物体成像的几何形状,不影响成像质量。畸变一般分为桶形畸变和枕形畸变。当检测精度要求较高时,需要进行畸变校正,畸变校正需要使用圆点矩阵标定板,并通过算法计算出畸变系数后进行图像校正。

三、工业镜头的分类

1、根据焦距是否可调:可分为定焦镜头和变焦镜头

定焦镜头:定焦镜头只有一个固定的焦距或者焦距段,焦距不能调节,即镜头具有固定的视场。

变焦镜头:变焦镜头通常带有变焦圈,通过旋转变焦圈可以改变镜头的焦距值。因此,变焦镜头可适用于多视野的应用场景。但是变焦镜头的制造工艺复杂,成像质量较差,产生的畸变误差较大。与同档次的定焦镜头比,定焦镜头的成像质量更好。

2、根据用途:可分为微距镜头、显微镜头、普通镜头、远心镜头

微距镜头:用于拍摄微小的物体,放大率在1:1--1:4之间,成本高,但是成像质量好。

显微镜头:用于近距离拍摄物体,并放大物体的细节特征,放大率在10--200之间,分辨率高,用于高精度测量实验仪器。

普通镜头:与人眼一样,观测不同距离的物体都是,近大远小,即同一镜头拍摄不同距离的物体,成像大小不一样。在景深范围之内,虽然物体能够清晰成像,但是成像大小会随距离变化。

远心镜头:相较于普通镜头,具有更大的景深,可以保证在景深范围之内,拥有一样的图像放大倍率。远心镜头适用于检测目标物体的特征不在一个平面的场合。

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

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

相关文章

LogicFlow 学习笔记——2. LogicFlow 基础 实例

LogicFlow 实例 创建实例 每一个流程设计界面&#xff0c;就是一个 LogicFlow 的实例。 <template><div id"container"></div><!-- 用于显示 LogicFlow 图表的容器 --> </template> <script>// 创建 LogicFlow 实例const lf …

中文版svn怎么忽略文件

个人需求&#xff1a; 不上传dist&#xff0c;dist.7z&#xff0c;node_modules等文件夹 实际操作&#xff1a; 前言&#xff1a;在上传svn为避免操作失败导致丢失文件的情况&#xff0c;保险起见&#xff0c;先备份代码 1&#xff1a;右键点击 2&#xff1a;点击新建 – 其…

C++初学者指南第一步---4.基本类型

C初学者指南第一步—4.基本类型 文章目录 C初学者指南第一步---4.基本类型1.变量声明2.快速概览Booleans 布尔型Characters 字符型Signed Integers 有符号整数Unsigned Integers 无符号整数Floating Point Types 浮点数类型 3.Common Number Representations 常用的数字表示常用…

C++访问Private,Protecd的一些方法总结

前言 在编写C程序中 我们偶尔会碰到这样的三种特殊修改变量值的需求&#xff1a; [1]在不修改类原本的实现下&#xff0c;访问修改类的Private变量 [2]在不修改类原本的实现下&#xff0c;修改类的Protected变量 Private变量访问 public类模版函数特化 这种办法利用了类模…

密码学-密码协议之零知识证明

一、前言 零知识证明实际上一种密码协议&#xff0c;该协议的一方称为证明者(Prover)&#xff0c;通常用P表示&#xff0c;协议的另一方是验证者(Verifier)&#xff0c;一般用V表示。零知识证明是指P试图使V相信某个论断是正确的&#xff0c;但却不向V提供任何有用的信息&…

springboot与flowable(7):流程变量

一、启动时添加流程变量 拿第一个流程图举例&#xff0c;创建一个新的流程定义。 Testvoid contextLoads() {DeploymentBuilder deployment repositoryService.createDeployment();deployment.addClasspathResource("process01/FirstFlow.bpmn20.xml");deployment.…

MFC工控项目实例之三theApp变量传递对话框参数

承接专栏《MFC工控项目实例之二主菜单制作》 用theApp变量传递对话框参数实时改变iPlotX坐标轴最小值、最大值。 1、新建IDD_SYS_DATA对话框&#xff0c;类名SYS_DATA。 三个编辑框IDC_EDIT1、IDC_EDIT2、IDC_EDIT3变量如图 2、SEAL_PRESSURE.h中添加代码 #include "re…

【单片机毕业设计选题24008】-基于单片机的寝室系统设计

系统功能: 1. 采用STM32最小系统板控制&#xff0c;将采集到温湿度光照等传感器数据显示在OLED上 2. 通过离线语音模块开关灯&#xff0c;风扇&#xff0c;门。 3. 监测到MQ2烟雾后触发报警。 4. 语音&手动&定时控制窗帘。 5. 按键开启布防模式&#xff0c;布防后…

java课设

项目简介:射击生存类小游戏 项目采用技术: 游戏引擎: Unity编程语言: Java图形处理: NVIDIA PhysX (物理引擎), HDRP (High Definition Render Pipeline)音效与音乐: FMOD, Wwise版本控制: Git 功能需求分析: 角色控制&#xff1a;玩家能够使用键盘和鼠标控制角色移动、瞄准…

【python基础实例】从文件命名中提取特定信息(数字、字母等)

【python基础实例】从文件命名中提取特定信息&#xff08;数字、字母等&#xff09; 在处理文件和数据时&#xff0c;我们经常需要从文件名中提取特定的信息&#xff0c;如日期、序号或项目标识符。Python提供了强大的字符串处理功能&#xff0c;可以轻松完成这些任务。本文将…

HttpOpenRequest 函数偶尔会引起崩溃的坑

通常我们会像下面一样调用&#xff1a; HINTERNET HttpOpenRequestA([in] HINTERNET hConnect,[in] LPCSTR lpszVerb,[in] LPCSTR lpszObjectName,[in] LPCSTR lpszVersion,[in] LPCSTR lpszReferrer,[in] LPCSTR *lplpszAcceptTypes,[in] DWORD dwFlags,[…

linux 部署瑞数6实战(维普,药监局)第一部分

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx 本文章未经许可禁止转载&…

1.22 LeetCode总结(基本算法)_位运算

进制的概念 进制即进位计数制&#xff0c;是利用固定的数字符号和统一的规则的带进位的计数方法。 任何一种进位计数制都有一个基数&#xff0c;基数为 X 的进位计数制称为 X 进制&#xff0c;表示每一个数位上的数运算时都是逢 X 进一。 504. 七进制数 手法1&#xff1a;当…

Qt自定义日志输出

Qt自定义日志输出 简略版&#xff1a; #include <QApplication> #include <QDebug> #include <QDateTime> #include <QFileInfo> // 将日志类型转换为字符串 QString typeToString(QtMsgType type) {switch (type) {case QtDebugMsg: return "D…

20240613日志:COPAL

Location: Beijing 1 大模型剪枝 Fig. 1.1大模型压缩-剪枝 剪枝的分类&#xff1a;结构化修剪对于简化大型语言模型和提高其效率尤其相关。非结构化修剪关注的是选择性地去除单个权重&#xff0c;旨在消除网络中不那么关键的连接。 修剪的基于阶段的分类&#xff1a;修剪可以在…

微软OneDrive简介:特点、应用场景、使用方法、注意事项

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

热门开源项目ChatTTS: 国内语音技术突破,实现弯道超车

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

Cesium入门学习(一)

下载cesium源代码 安装依赖 npm install注册账户&#xff0c;申请一个token 没有这个token&#xff0c;会导致地图中只能看到一个宇宙&#xff0c;没有办法看到地球 cesium的官网&#xff1a;cesium官网 替换token 替换对应位置的token 启动 运行 npm run build npm r…

西门子学习笔记15 - 位逻辑操作的学习

1、点动操作&#xff08;按下按钮就启动松开就停止&#xff09; 2、自锁电路&#xff08;可以自己保持的状态除非常闭停止按下&#xff09; 3、取反操作&#xff08;顾名思义就是反过来1就变成0&#xff0c;0就变成1&#xff09; 4、置为复位&#xff08;置位之后如果不复位的话…

注解(Annotation)(一)

Java 注解&#xff08; Annotation &#xff09;又称 Java 标注&#xff0c;是 JDK5.0 引入的一种注释机制。 Java 语言中的类、 构造器、 方法、成员变量、参数等都可以被注解进行标注。 自定义注解 --- 格式 自定义注解就是自己做一个注解来使用。 public interface …