一文掌握工业相机选型计算

目录

一、基本概念

1.1 物方和像方

1.2 工作距离和视场

1.3 放大倍率

1.4 相机芯片尺寸

二、公式计算

三、实例应用


一、基本概念

1.1 物方和像方

在光学领域,物方(Object Space)是与像方(Image Space)相对的概念,用于描述光学系统中光线或物体所在的空间区域。

  • 物方:指光学系统(如镜头、相机)中,实际物体所处的空间范围,即被观察、拍摄的对象所在的物理空间。
  • 像方:指光学系统中,物体通过光学元件成像后所在的空间范围(如相机传感器、胶片上的成像区域)。

1.2 工作距离和视场

(1)镜头工作距离(WD):镜头物方端面到被拍摄物体表面的物理距离。

(2)光源工作距离(LWD):光源物方端面到被照射物体表面 的物理距离。

(3)视场(FOV):也称视野,是指能被视觉系统观察到的物方可视范围大小。

对于镜头而言,可观察到的视场跟镜头放大倍率及相机芯片选择有关。因此通常建议根据被观察物体的尺寸,先确定所需的视场,再确定相机芯片尺寸及镜头放大倍率。在实际工程项目中,考虑到机械误差等问题,视场通常要大于待观测物体的实际尺寸,以确保在机械误差的范围内,物体始终位于视觉系统的可视范围内。

1.3 放大倍率

机器视觉行业里提到的镜头光学放大倍率通常是指垂轴放大倍率,即像和物的大小之比,计算方法如下:

 光学放大倍率=感光芯片长边/视野长边

 可见,光学放大倍率和所选相机芯片及所需视场相关。

【示例1】

问题:已知相机芯片为2/3英寸(8.8mm*6.6mm),视场长宽为:10mm* 8mm,计算放大倍率。

解答

如用长边计算,放大倍率=8.8mm/10mm=0.88x;

如用短边计算,放大倍率=6.6mm/8mm=0.825x;

此时应取小的倍率0.825x 作为待选镜头的光学放大倍率。否则,短边视场将不能满足要求。(若取0.88倍,则短边视场=6.6mm/0.88x=7.5mm<8mm)。

在实际工程项目中,通常无需长短边都计算。经验的方法是:若视场接近于正方形或圆形,则取短边计算;若视场为长条形,则取长边计算。

1.4 相机芯片尺寸

在前面描述放大倍率和镜头像面尺寸时都涉及到相机芯片尺寸。通常相机厂商是以英寸的形式表示的,但在实际计算时,需要换算成各边以毫米为单位的计量方式。

但对于相机芯片尺寸而言,1 inch≠ 25.4mm,而有其特有的换算关系。以下是常见的尺寸对应关系:

1.1英寸——靶面尺寸为宽12mm*高12mm,对角线17mm1英寸 ——靶面尺寸为宽12.7mm*高9.6mm,对角线16mm2/3英寸——靶面尺寸为宽8.8mm*高6.6mm,对角线11mm 1/1.8英寸——靶面尺寸为宽7.2mm*高5.4mm,对角线9mm1/2英寸——靶面尺寸为宽6.4mm*高4.8mm,对角线8mm1/3英寸——靶面尺寸为宽4.8mm*高3.6mm,对角线6mm 1/4英寸——靶面尺寸为宽3.2mm*高2.4mm,对角线4m

最准确的芯片尺寸计算方法是:

相机像素颗数x像素尺寸=芯片尺寸。如某相机分辨率为5120x5120, 像素尺寸为4.5µmx4.5µm, 则芯片为正方形,边长=5120x4.5µm=23040µm=23.04mm。

二、公式计算

根据前面的概念介绍,可以得出面阵相机镜头选型的核心计算公式:

光学放大倍率   =   相机芯片长度 / 视野长边   =  焦距f  /  工作距离WD

示意图如下:

按照前面的核心公式,工业镜头的焦距(f mm)可以根据FOV(视场), WD(工作距离) 和芯片尺寸计算出来:

焦距计算公式:

焦距f = WD × 芯片尺寸 / FOV

三、实例应用

问题:已知参数如下:

(1)相机配置为: 芯片长宽为5.7*4.3mm, 分辨率为:2592*1944, 像元尺寸为2.2*2.2um

(2)物距:60mm

(3)视野大小:12mm*9mm

应选择何种镜头?

答案:按照前面公式  焦距1 = 60*4.3/9 = 28.7    焦距2 = 60*5.7/12 = 28.5

为了能覆盖视野,选择更短的焦距,因此应选择28.5mm焦距的镜头。

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

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

相关文章

《虚拟即真实:数字人驱动技术在React Native社交中的涅槃》

当React Native与数字人驱动技术相遇&#xff0c;它们将如何携手塑造社交应用中智能客服与虚拟主播的自然交互呢&#xff1f;这正是本文要深入探讨的话题。 React Native是Facebook开源的一个用于构建原生移动应用的框架&#xff0c;它允许开发者使用JavaScript和React编写代码…

使用AI 生成PPT 最佳实践方案对比

文章大纲 一、专业AI生成工具(推荐新手)**1. 推荐工具详解****2. 操作流程优化****3. 优势与局限**二、代码生成方案(开发者推荐)**1. Python-pptx进阶用法****2. GitHub推荐**三、混合工作流(平衡效率与定制)**1. 工具链升级****2. 示例Markdown结构**四、网页转换方案(…

前端-HTML元素

目录 HTML标签是什么&#xff1f; 什么是HTML元素&#xff1f; HTML元素有哪些分类方法&#xff1f; 什么是HTML头部元素 更换路径 注&#xff1a;本文以leetbook为基础 HTML标签是什么&#xff1f; HTML标签是HTML语言中最基本单位和重要组成部分 虽然它不区分大小写&a…

菱形继承原理

在C中&#xff0c;菱形继承的内存模型会因是否使用虚继承产生本质差异。我们通过具体示例说明两种场景的区别&#xff1a; 一、普通菱形继承的内存模型 class A { int a; }; class B : public A { int b; }; class C : public A { int c; }; class D : public B, public C { i…

2025认证杯数学建模第二阶段A题小行星轨迹预测思路+模型+代码

2025认证杯数学建模第二阶段思路模型代码&#xff0c;详细内容见文末名片 一、问题重述 1.1 问题背景 在浩瀚无垠的宇宙中&#xff0c;近地小行星&#xff08;NEAs&#xff09;宛如一颗颗神秘的“太空子弹”&#xff0c;其轨道相对接近地球&#xff0c;给我们的蓝色星球带来…

掌握Docker Commit:轻松创建自定义镜像

使用 docker commit 命令可以通过对现有容器进行修改来创建新的镜像。-a 选项用于指定作者信息&#xff0c;-m 选项用于添加提交信息。以下是具体步骤&#xff1a; 启动并修改容器 启动一个容器并进行必要的修改。例如&#xff0c;启动一个 Ubuntu 容器并安装一些软件包&…

Java虚拟机 - JVM与Java体系结构

Java虚拟机 JVM与Java体系结构为什么要学习JVMJava与JVM简介Java 语言的核心特性JVM&#xff1a;Java 生态的基石JVM的架构模型基于栈的指令集架构&#xff08;Stack-Based&#xff09;基于寄存器的指令集架构&#xff08;Register-Based&#xff09;JVM生命周期 总结 JVM与Jav…

【PostgreSQL系列】PostgreSQL 复制参数详解

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

阿里巴巴开源移动端多模态LLM工具——MNN

MNN 是一个高效且轻量级的深度学习框架。它支持深度学习模型的推理和训练&#xff0c;并在设备端的推理和训练方面具有行业领先的性能。目前&#xff0c;MNN 已集成到阿里巴巴集团的 30 多个应用中&#xff0c;如淘宝、天猫、优酷、钉钉、闲鱼等&#xff0c;覆盖了直播、短视频…

Vue.js---watch 的实现原理

4.7 watch 的实现原理 watch本质上就是使用了effect以及options.scheduler 定义watch函数&#xff1a; // watch函数:传入参数source以及回调函数function watch(source , cb) {effect(() > source.foo,{scheduler(){// 回调函数cb()}})}watch接收两个参数分别是source和c…

SpringBoot3+AI

玩一下AI 1. SSE协议 我们都知道tcp&#xff0c;ip&#xff0c;http&#xff0c;https&#xff0c;websocket等等协议&#xff0c;今天了解一个新的协议SSE协议&#xff08;Server-Sent Events&#xff09; SSE&#xff08;Server-Sent Events&#xff09; 是一种允许服务器…

vscode中Debug c++

在vscode中Debug ros c程序 1 在Debug模式下编译 如果用命令行catkin_make&#xff0c;在输入catkin_make时加上一个参数&#xff1a; catkin_make -DCMAKE_BUILD_TYPEDebug 或者直接修改CMakelist.txt&#xff0c;添加以下代码&#xff1a; SET(CMAKE_BUILD_TYPE "D…

【ROS2】 核心概念6——通信接口语法(Interfaces)

古月21讲/2.6_通信接口 官方文档&#xff1a;Interfaces — ROS 2 Documentation: Humble documentation 官方接口代码实战&#xff1a;https://docs.ros.org/en/humble/Tutorials/Beginner-Client-Libraries/Single-Package-Define-And-Use-Interface.html ROS 2使用简化的描…

C#里与嵌入式系统W5500网络通讯(2)

在嵌入式代码里,需要从嵌入式的MCU访问W5500芯片。 这个是通过SPI通讯来实现的,所以要先连接SPI的硬件通讯线路。 接着下来,就是怎么样访问这个芯片了。 要访问这个芯片,需要通过SPI来发送数据,而发送数据又要有一定的约定格式, 于是芯片厂商就定义下面的通讯格式: …

SuperYOLO:多模态遥感图像中的超分辨率辅助目标检测之论文阅读

摘要 在遥感影像&#xff08;RSI&#xff09;中&#xff0c;准确且及时地检测包含数十像素的多尺度小目标仍具有挑战性。现有大多数方法主要通过设计复杂的深度神经网络来学习目标与背景的区分特征&#xff0c;常导致计算量过大。本文提出一种兼顾检测精度与计算代价的快速准确…

计算机软件的基本组成

计算机软件的基本组成 一, 计算机软件的分类 软件按其功能分类, 可分为系统软件和应用软件 图解 (1)系统软件 系统软件是一组保证计算机系统高效, 正确运行的基础软件, 软件通常作为系统资源提供给用户使用. 系统软件主要有操作系统(OS), 数据库管理系统(DBMS), 语言处理程…

unity开发游戏实现角色筛选预览

RenderTexture通俗解释 RenderTexture就像是Unity中的"虚拟相机胶片"&#xff0c;它可以&#xff1a; 捕获3D内容&#xff1a;将3D场景或对象"拍照"记录下来 实时更新&#xff1a;不是静态图片&#xff0c;而是动态视频&#xff0c;角色可以动起来 用作…

Spring源码主线全链路拆解:从启动到关闭的完整生命周期

Spring源码主线全链路拆解&#xff1a;从启动到关闭的完整生命周期 一文看懂 Spring 框架从启动到销毁的主线流程&#xff0c;结合原理、源码路径与伪代码三位一体&#xff0c;系统学习 Spring 底层机制。 1. 启动入口与环境准备 原理说明 Spring Boot 应用入口是标准 Java 应…

SAP RF 移动屏幕定制

SAP RF 移动屏幕定制 ITSmobile 是 SAP 当前将移动设备连接到 SAP 系统的技术基础。它基于 SAP Internet Transaction Server (ITS)&#xff0c;从 Netweaver 2004 开始作为 Netweaver 平台的一部分提供。ITSmobile 提供了一个框架&#xff0c;用于为任何 SAP 事务生成基于 HT…

Spark,数据提取和保存

以下是使用 Spark 进行数据提取&#xff08;读取&#xff09;和保存&#xff08;写入&#xff09;的常见场景及代码示例&#xff08;基于 Scala/Java/Python&#xff0c;不含图片操作&#xff09;&#xff1a; 一、数据提取&#xff08;读取&#xff09; 1. 读取文件数据&a…