【自动驾驶】33.【图像坐标系】 到 【像素坐标系】 的度量单位变换、【英寸】、【感光芯片】_畸变中心的单位_Mister Zhu的博客-程序员秘密

技术标签: 自动驾驶  计算机视觉  

我们理论分析的时候,使用小孔成像模型来分析。
在这里插入图片描述
其中, ( u , v ) (u,v) (u,v)为像素坐标, ( c x , c y ) (c_x, c_y) (cx,cy)表示相机主点(principal point),即相机畸变中心,一般在图像中心点附近; d x dx dx d y dy dy是像元尺寸。
例如, 1280 ∗ 960 1280*960 1280960 的分辨率的图像, ( c x , c y ) (c_x, c_y) (cx,cy)一般在 ( 640 , 480 ) (640,480) (640,480) 附近,若CMOS senosr的尺寸为 64.0 m m × 48.0 m m 64.0mm ×48.0 mm 64.0mm×48.0mm,则:
d x = 64.0 m m 1280 p x dx= \frac{64.0 mm}{1280 px} dx=1280px64.0mm
d y = 48.0 m m 960 p x dy=\frac{48.0mm}{960px} dy=960px48.0mm

英寸:

英寸的符号是"(即英文状态的双引号)或者inch(简写为in)。
1"=1英寸(inch) = 2.54 厘米
1'=1英尺(foot,符号ft) = 12英寸(12") = 30.48 厘米
显示器中常用寸来表示屏幕大小,一般这里的寸都是指英寸,在宣传中也都是用27"(27寸)这种形式表示。
关于电视屏幕尺寸的计算:
一般电视或显示器厂商宣传自家屏幕大小时都是用长度(英寸)而不是面积来表示,例如27寸的显示器,它的显示器面板对角线长即27英寸,换算成厘米就是27*2.54=68.58cm


镜头光学尺寸:

镜头光学尺寸是指sensor感光面积的大小,一般常见有1/3’’、1/4’’、1/2.7’'等等,其单位为英寸(inch),表述的是sensor感光面对角线的长度。

业界通用的规范就是:
1 英 寸 C C D s i z e = 长 12.8 m m ∗ 宽 9.6 m m = 对 角 线 为 16 m m 对 应 的 面 积 \color{red}1英寸 CCD size =长12.8mm*宽9.6mm=对角线为16mm 对应的面积 1CCDsize=12.8mm9.6mm=线16mm
根据勾股定理,得出三边比例为4:3:5。换句话说,我无需给你完整的面积参数,只需给你三角形最长一边(对角线)长度,你就可以透过简单的定理换算回来.
有了固定单位的CCD尺寸,就不难了解CCD size比例的含义了,例如:

  • 1/2’’ CCD size的对角线就是1’'的1/2为 16 ∗ 1 / 2 = 8 m m 16*1/2=8mm 161/2=8mm,面积约为1/4;
  • 1/4’’ CCD size的对角线就是1’'的1/4为 16 ∗ 1 / 4 = 4 m m 16*1/4=4mm 161/4=4mm,面积约为1/16。

按 照 工 业 标 准 : 1 英 寸 = 25.4 m m , 而 在 电 子 元 件 成 像 领 域 S e n s o r 尺 寸 : 1 英 寸 = 16 m m 。 \color{red}按照工业标准:1英寸=25.4mm,而在电子元件成像领域Sensor尺寸:1英寸=16mm。 :1=25.4mmSensor:1=16mm
我们平常所说的CCD/CMOS的尺寸,实际上是指Sensor对角线的长度,这一点跟我们平常所说的屏幕尺寸是一样的。

按照最开始CCD应用在摄像机上的标准 12.8 m m ∗ 9.6 m m \color{red}12.8mm*9.6mm 12.8mm9.6mm 的面积, 12. 8 2 + 9. 6 2 = 1 6 2 \color{red}12.8^2+9.6^2=16^2 12.82+9.62=162,对角线尺寸为16mm,所以Sensor尺寸的1就是指对角线16mm。
9.6 m m : 12.8 m m = 3 : 4 9.6mm:12.8mm = 3:4 9.6mm:12.8mm=3:4
720 : 1280 = 9 : 16 720:1280 = 9:16 720:1280=9:16
1080 : 1920 = 9 : 16 1080:1920 = 9:16 1080:1920=9:16

那么我们以1/2.5"CMOS来计算下mm单位下的尺寸:
1 / 2.5 " C M O S : ( 12.8 / 2.55 ) ∗ ( 9.6 / 2.55 ) = 5.02 m m ∗ 3.76 m m 1/2.5"CMOS:(12.8/2.55)*(9.6/2.55)=5.02mm*3.76mm 1/2.5CMOS12.8/2.559.6/2.55=5.02mm3.76mm
上面这个是不是写错了,是不是下面这样:
1 / 2.5 " C M O S : ( 12.8 / 2.5 ) ∗ ( 9.6 / 2.5 ) = 5.12 m m ∗ 3.84 m m 1/2.5"CMOS:(12.8/2.5)*(9.6/2.5)=5.12mm*3.84mm 1/2.5CMOS12.8/2.59.6/2.5=5.12mm3.84mm
同理可以计算出其他尺寸的sensor大小。


例如:

在这里插入图片描述
在这里插入图片描述

2.3M (1928 * 1208) resolution, 3.0um pixel size, 1/2.7 inch image sensor

上面是某款相机的参数,对于1928x1208的分辨率来说,每个像素的长度为3.0um。
传感器感光面对角线长度为 1 2.7 i n c h \frac{1}{2.7} inch 2.71inch,,那么感光面对角线长度:

  • 如果按照工业上实际的换算:1"=0.0254m=25.4mm 来计算,对角线相当于:
    1 2.7 i n c h = 0.37 i n c h = 9.4 m m \frac{1}{2.7} inch=0.37inch=9.4mm 2.71inch=0.37inch=9.4mm
  • 如果按照电子元件成像领域Sensor尺寸:1"=16mm 来换算的话,对角线相当于:
    1 2.7 i n c h = 16 m m / 2.7 = 5.9259 m m \frac{1}{2.7} inch=16mm/2.7=5.9259mm 2.71inch=16mm/2.7=5.9259mm

按照像素宽度 3.0um pixel size来计算:
长为: 1928 ∗ 3 u m = 5784 u m = 5.784 m m 1928*3um=5784um=5.784mm 19283um=5784um=5.784mm
宽为: 1208 ∗ 3 u m = 3624 u m = 3.642 m m 1208*3um=3624um=3.642mm 12083um=3624um=3.642mm
按照上面的长宽来计算对角线是 6.8 m m \color{red}6.8mm 6.8mm。和上面两种计算方式得到的对角线长度 9.4 m m 9.4mm 9.4mm和5.9259mm都不一致,那么我猜测给出的1/2.7 inch应该只是个参考值

zhz:另外,1928x1208的分辨率应该是图像传感器的分辨率,1920*1080是相机厂家设定的分辨率,不同相机厂家可能都使用同一种图像传感器,经过厂家自己处理,会重新设置一个输出分辨率。

zhz:图像传感器的感光面被划分成1928x1208个小方块,每个小方块都是一个像元,像元的宽度为3um。对于本例中图像传感器像元尺寸3.0um,无论是1928x1208还是1920x1080的分辨率,他们每个像素的宽度都是3um,只不过,厂家把图像传感器的周边的一些给裁剪了,分辨率就相对减小了,但是像元尺寸是固定不变的。


相机坐标系:

相机坐标系度量值为米(m),该坐标系下的每个点 ( x c , y c , z c ) (x_c,y_c,z_c) (xc,yc,zc) 表示 x c x_c xc米、 y c y_c yc米和 z c z_c zc米;
相机坐标系与世界坐标系都是三维坐标系,相机坐标系和世界坐标系(例如车辆坐标系)的原点不同,并且需要平移。

图像坐标系:

图像坐标系度量值为米(m),只不过该坐标系下的点被限制在了感光芯片的大小(感光芯片可能只有指甲盖大小,甚至更小),该坐标系点的每个点 ( x i , y i ) (x_i,y_i) (xi,yi) 表示 x i x_i xi 米和 y i y_i yi 米;

像素坐标系:

像素坐标系度量值为像素的个数(pixel);
如果像素坐标系的分辨率设为1280*960,那么像素坐标系的每个点 ( x p , y p ) (x_p,y_p) (xp,yp)表示 ( x i d x , y i d y ) (\frac{x_i}{dx},\frac{y_i}{dy}) (dxxi,dyyi),即:
图像坐标系下以m为单位的点 ( x i , y i ) (x_i,y_i) (xi,yi)转换到像素坐标系下,变成了以像素为单位的点 ( x i d x , y i d y ) (\frac{x_i}{dx},\frac{y_i}{dy}) (dxxi,dyyi)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011754972/article/details/122311899

智能推荐

Android O/P/Q SELinux avc dennied权限问题分析与解决_人在路上……的博客-程序员秘密

Android O/P/Q SELinux avc dennied权限问题分析与解决1.概述2.确认SELinux问题3.案例分析案例1案例2案例3案例44.万能公式5.归纳6.第三方进程改新增全新的te文件并赋予权限6.1新设备节点增加访问权限6.2新文件/目录增加访问权限1.概述Android SELinux是Google从android L 开始,强制引入的一套非常严格的权限管理机制,主...

基于MyEclipse+Tomcat+mysql+SSH开发得企业快信系统_程序员DD的博客-程序员秘密

随着互联网的迅速发展,短信和E-mail 已经成为人与人之间沟通的桥梁,越来越多的人开始选择通过网络进行即时沟通。为此,越来越多的网站开始提供发送E-mail 以及收发手机短信的功能。与此同时,短信和E-mail 也以其快捷、无时空限制、低成本等优势受到众多企业的青睐,成为企业移动商务的主流应用方式。企业快信就是为企业提供的短信和E-mail 群发的解决方案。操作系统:Windows 7...

信息学奥赛一本通 1070:人口增长 | OpenJudge NOI 1.5 14:人口增长问题_1070:人口增长_君义_noip的博客-程序员秘密

【题目链接】ybt 1070:人口增长OpenJudge NOI 1.5 14:人口增长问题【题目考点】1. 循环求幂设变量r初始值为1:int r = 1;循环n次每次循环中输入变量a,将r的值设为r*a:r *= a;循环结束后,r即为ana^nan2. 调用乘方函数pow()(存在于<cmath>中)double pow(double a, double b); 求aba^bab3.(扩展)快速幂【解题思路】已知:每年以0.1%(即0.001)的增长速度增长。最

从零搭建可分配节点GPU资源至容器的Kubernetes集群(Nvidia版本)_pod指定不同runtime nvidia_T型人小付的博客-程序员秘密

最近和AI团队一起做项目,需要将机器学习的项目部署进k8s。因为要使用节点的GPU资源,普通部署的k8s集群不能用了,因为docker只能对CPU和内存而不能对GPU资源进行共享和隔离。这一节我们就一起来看看怎么部署一个能分配GPU资源的k8s集群。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录操作环境利用kubeadm安装GPU节点安装准备查看Linux的GPU信息安装nvidia-docker2GPU节点加入集

重写Override_override重写的要求_职场菜鸟007的博客-程序员秘密

当父类的某个方法的方法体(方法的实现)不适合与子类时,那么子类应该选择重写该方法。重写的要求:(1)两同:方法名与形参列表必须相同(2)两小返回值类型:基本数据类型和void:子类重写的方法的返回值类型 与 父类被重写的方法的返回值类型 相同引用数据类型:子类重写的方法的返回值类型 <= 父类被重写的方法的返回值类型抛出的异常类型:(3)一大:权限修饰符:子类重写的方法...

Go Web编程实战(3)----数据类型_go web3_李元静的博客-程序员秘密

Go语言数据类型包括布尔型、数字类型、字符串类型、复合类型这4种。其中复合类型又分为:数组类型、切片类型、Map类型以及结构体类型。

随便推点

各品牌机组装机重装系统按键汇总_weixin_33782386的博客-程序员秘密

【组装电脑主板】主板品牌 启动按键华硕主板 F8技嘉主板 F12微星主板 F11映泰主板 F9梅捷主板 ESC或F12七彩虹主板 ESC或F11华擎主板 F11斯巴达卡主板 ESC昂达主板 F11双敏主板 ESC翔升主板 F10精英主板 ESC或F11冠盟主板 F11或F12富士康主板 ESC或F12顶星主板 F11或F12铭瑄主板 ESC盈通主板 F8或F11...

《机器人GPS定位导航小车的制作》_利用树莓派搭建导航车辆_xiaovdiy的博客-程序员秘密

创客:机器人GPS定位导航小车的制作-基于物联网的应用目录前言 3画册 4第1章机器人小车基础知识 171.1 机器人小车全新认识 171.2 机器人小车释疑解惑 171.3 机器人小车的驱动方式 18第2章 机器人小车的构成 192.1 机器人小车的构想 202.2 机器人小车的转向结构 222.2.1 机器人小车差速转向 232.2.2 机器人小车独立舵机转向 242.2.3 轿车级的阿克曼转向 272.2.3.1 模型建立ros 272.2.4 机器人小车的转向优缺点

高级UI强行进阶:自定义View实现女朋友欲罢不能的网易云音乐宇宙尘埃特效,拿去装笔不用谢~_dimpleview_沈页的博客-程序员秘密

前言前段时间,女朋友用网易云音乐的时候看到一个宇宙尘埃特效,说很好看,想要让我给她开VIP用。开什么玩笑?作为一个程序员为什么不能自己实现!开什么VIP!!什么?女朋友?程序员有吗?我只在意特效的实现!作者:Mlx链接:https://juejin.im/post/6871049441546567688高级UI进阶B站视频讲解:https://www.bilibili.com/video/BV1fE411P7PA正文0202年了,Android开发大都应该是老油条了把。如果你自定义Vie

源码分析之Docopt-go_魏小言的博客-程序员秘密

源码分析之Docopt-go地址:https://github.com/docopt/docopt.goDoc命令行解析工具https://github.com/docopt/docopt.go例子:./flowanalysis checkCfg --config config/flowanalysis.test.toml go runmain.go checkCfg --config config/flowanalysis.test.tomlFormatvar usage strin

python 对象转字典及序列化对象相关问题,__dict__!!!!必看,多坑_python dict 序列化_Jenrey的博客-程序员秘密

目录__dict__只能存储实例变量,不能存储类变量情况一:(可以直接通过__dict__序列化对象)情况二:(不能直接通过__dict__序列化对象)情况三:(定义keys和__getitem__方法)关于细节方面的测试先给结论:python不能直接序列化对象(往下看)对于普通得python对象来说,__dict__就可以序列化对象。__dict__的作用:把类的...

Camera1实现预览并自动获取相片_qmdluck的博客-程序员秘密

import android.content.Context;import android.hardware.Camera;import android.util.AttributeSet;import android.util.Log;import android.view.SurfaceHolder;import android.view.SurfaceView;imp...