关于相机标定的简单介绍

关于Opencv实现的代码,参考:
https://blog.csdn.net/dcrmg/article/details/52939318

-
相机从生产出厂时,存在一些难以避免的畸变。这种镜头畸变可以通过矫正来达到最佳的拍摄效果。标定板要拍摄不同角度的20张照片,是因为镜头仅通过三五张照片难以完成自身的校准,这个时候,镜头需要多张不同角度的照片,去告诉它,镜头究竟处于何种状态。每次拍摄照片时,要求标定板全部入镜,且可手动调节光圈和焦距,使拍摄效果达到最佳。
这里写图片描述
相机的标定其实也受手动角点选取的影响,选取的越准确,校准的效果越好
作者:咕噜咕噜
链接:https://www.zhihu.com/question/29448299/answer/359778603
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

-

相机标定的目的是确定相机的一些参数的值。通常,这些参数可以建立定标板确定的三维坐标系和相机图像坐标系的映射关系,换句话说,你可以用这些参数把一个三维空间中的点映射到图像空间,或者反过来。
相机需要标定的参数通常分为内参和外参两部分。外参确定了相机在某个三维空间中的位置和朝向,至于内参,可以说是相机内部的参数(这好像是废话…笑),我觉得需要引入一点光学的东西来更好地解释一下。现有的相机都至少包含一个光学镜头和一个光电传感器(CCD或CMOS)。通过镜头,一个三维空间中的物体经常会被映射成一个倒立缩小的像(当然显微镜是放大的,不过常用的相机都是缩小的),被传感器感知到。
1) 理想情况下,镜头的光轴(就是通过镜头中心垂直于传感器平面的直线)应该是穿过图像的正中间的,但是,实际由于安装精度的问题,总是存在误差,这种误差需要用内参来描述;
2) 理想情况下,相机对x方向和y方向的尺寸的缩小比例是一样的,但实际上,镜头如果不是完美的圆,传感器上的像素如果不是完美的紧密排列的正方形,都可能会导致这两个方向的缩小比例不一致。内参中包含两个参数可以描述这两个方向的缩放比例,不仅可以将用像素数量来衡量的长度转换成三维空间中的用其它单位(比如米)来衡量的长度,也可以表示在x和y方向的尺度变换的不一致性;
3)理想情况下,镜头会将一个三维空间中的直线也映射成直线(即射影变换),但实际上,镜头无法这么完美,通过镜头映射之后,直线会变弯,所以需要相机的畸变参数来描述这种变形效果。

然后,说到为什么需要20张图片,这只是一个经验值,实际上太多也不好,太少也不好。单纯从统计上来看,可能越多会越好,但是,实际上图片太多可能会让参数优化的结果变差,因为棋盘格角点坐标的确定是存在误差的,而且这种误差很难说是符合高斯分布的,同时,标定过程所用的非线性迭代优化算法不能保证总是得到最优解,而更多的图片,可能会增加算法陷入局部最优的可能性。拍照时的标定板位置和朝向的多样性,会让内参的估计更为准确。准确的内参可以较好地把整个图像的畸变都进行矫正,但如果给定的标定板的位置过于单一,比如都是在图像的左上角,那么优化得到的内参也可能只会比较好地纠正图像左上角的畸变。推荐找个畸变较大的镜头做做实验,会更形象。

作者:大饼土博
链接:https://www.zhihu.com/question/29448299/answer/74502055
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

-

我们继续看看,通过摄像机标定我们可以知道些什么:
1.外参数矩阵。告诉你现实世界点(世界坐标)是怎样经过旋转和平移,然后落到另一个现实世界点(摄像机坐标)上。
2.内参数矩阵。告诉你上述那个点在1的基础上,是如何继续经过摄像机的镜头、并通过针孔成像和电子转化而成为像素点的。
3.畸变矩阵。告诉你为什么上面那个像素点并没有落在理论计算该落在的位置上,还tm产生了一定的偏移和变形!!
好了,到这里是不是明白了一点?上述3点的每一个转换,都有已经有成熟的数学描述,通过计算,我们完全可以精确地重现现实世界的任意一个点到其数字图像上对应像素点的投影过程。对于双目视觉系统,通过立体标定还能进一步得到下面的参数:
4.结构参数。告诉你右摄像机是怎样相对于左摄像机经过旋转和平移达到现在的位置。
通过结构参数,便能把左右摄像机获取的图像的每一个像素点之间的关系用数学语言定量描述,保证两个相机都处于我们“可求”的状态。
总的来说,摄像机标定是通过寻找对象在图像与现实世界的转换数学关系,找出其定量的联系,从而实现从图像中测量出实际数据的目的。

当然,其实上述的各个转换过程大部分都不需要用户自己一个个写程序实现,比如opencv就集成了单目标定函数calibracamera()、畸变校正函数undistortinitialmap()、双目标定函数stereocalibrate()……

作者:陈明猷 https://www.zhihu.com/question/29448299/answer/102658379
来源:知乎,关于相机标定写的太好了。如果侵权,请私信或者发邮件,我及时删除。

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

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

相关文章

谷歌Waymo自建车厂,L4级无人车量产指日可待

来源:AI科技大本营摘要:现在,Waymo 宣称世界上第一家 100% 致力于大规模生产 L4 自动驾驶汽车的工厂,即将诞生。美国当地时间 1 月 22 日,Google 旗下无人驾驶公司 Waymo 宣布,在未来五年内&…

java 使用json-lib 对象,String,json互转

所使用的包: commons-beanutils.jar commons-collections-3.1.jar commons-lang.jar commons-logging-1.1.3.jar ezmorph-1.0.jar json-lib-2.2.2-jdk15.jar 先看json和String的互转 User.java user对象 package test;public class User {String id;String name;i…

VS2013中CUDA的配置

参考一下博客: https://www.cnblogs.com/br170525/p/8325842.html 和 https://blog.csdn.net/tiemaxiaosu/article/details/52856495

腾讯“科学探索奖”提名报名正式启动

科学探索奖“申报指南”记者1月23日从腾讯公司获悉,由腾讯基金会联合杨振宁等众多知名科学家发起的“科学探索奖”提名报名正式启动。这标志着腾讯基金会这一投入10亿元发起的民间科学大奖正式拉开帷幕。按照科学探索奖官方网站提供的“申报指南”,该奖的…

Opencv数据符号说明

在openCV中常常会使用CV_32UC1等相似的字符,这里简单说明含义,作为备忘录。 标识含义 CV_表示是openCV中的宏定义。32是指这个数据是一个32位数据,相同的还有8,16,64三种。U是unsigned的首字母,代表最高位表示计数,而…

语音公司集体杀入AI芯片 2019场景落地战打响!

来源:智东西摘要:近十家语音公司集体搞芯片!为什么杀红了眼,谁又能笑到最后?2019年的第一个工作日,在第一颗AI芯片“雨燕”落地不久,AI创业公司云知声紧锣密鼓地推出多模态AI芯片战略&#xff0…

[原创]VS2013 EF6连接MySql需要几步?

精简的美丽...... 1.安装mysql server下载地址 http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.21-winx64.zip注意:此url中除去文件名的部分是几乎所有文件下载的路径下面的文章可以借鉴 【MySQL】教你一步一步在Windows 8.1系统上配置免安装版mysql-5.6.21-…

Opencv中Mat的data数据只定义为uchar*类型,

opencv中Mat的数据定义为指向uchar 的指针,而构造函数又提供了许多其他类型。 其实数据在内存中是一维存储的,而图像基本结构是二维的,3D图像还会是三维的;同时,彩色图像还有多个channel(通道)…

任总讲话,说明华为对5G有清醒的认识

来源:科工力量摘要:无线通信产业已经发展了四代,目前正处于5G产业化前夕,是当下到一个最热的话题,5G如何发展,前景如何,是各个方面包括学术界、产业界、投资界以及政府都非常关心的。另外&#…

mysql 其他引擎

待补充转载于:https://www.cnblogs.com/mjorcen/p/4064037.html

Opencv和C++实现canny边缘检测

Canny边缘检测主要包括: 图像的灰度化;图像的高斯滤波,来平滑图像,同时消除和降低图像噪声的影响;计算出每一个像素点位置的梯度(X方向梯度、Y方向梯度、已经该点的梯度幅值)和方向角度&#x…

这些机器人决定全球机器人未来趋势·Science Robotics 评选年度十大机器人

来源:机器人大讲堂摘要:如果评选机器人领域最高端的学术杂志,那应该非《Science Robotics》莫属了。作为顶级期刊Science的子刊,一经问世便受到机器人界各位学术大牛的青睐,令人咋舌的前沿科技层出不穷。最近&#xff…

C#语言之“中英文混合字符串对齐”的方法

参考自:(1)http://www.cnblogs.com/cnluoke/articles/1213398.html (2)http://www.cnblogs.com/sql4me/archive/2009/11/16/1603996.html 方法一:将已有字符串组织成新字符串时填充 由于某一个字段&#xf…

计算机视觉三大顶级会议ICCV,CVPR,ECCV网址

ICCV网址如下: http://www.informatik.uni-trier.de/~ley/db/conf/iccv/index.html ECCV网址如下: http://www.informatik.uni-trier.de/~ley/db/conf/eccv/index.html CVPR网址如下: http://dblp.uni-trier.de/db/conf/cvpr/index.html 可以找到代码的 利用传统方法的视频…

2019年社交媒体趋势报告

来源:新媒体创意营销Kantar Media发布了新报告“2019年社交媒体趋势”。世界上40%的人口使用社交媒体。一些行业报告显示人们平均每天花两小时在这些平台上分享、点赞、发推和更新,那么2019年会怎样呢?第五个年度社交媒体趋势报告强调了该领域…

卡特兰数列编程实现

卡特兰(Catalan)数列典型特征有一类如下: 1. 可以分为两列 2. 每行从左向右依次递增(减),每列从上向下依次递增(减) /* 2-10 标准二维表问题 问题为:设n是一个正整数。2*n的标准二维表是由正…

小猪的Android入门之路 day 1

小猪的Android入门之路 Day 1 Android相关背景与开发环境的搭建 ------转载请注明出处:coder-pig 本节引言: 随着社会经济的发展,移动互联网的越来越热,手机APP开发显得格外火爆, 作为一名快要毕业的IT屌丝,自然要趟一趟这一浑水啦,当前主流的手机系统 IOS(苹果),Android(安卓)…

146亿美元!2018全球数字医疗投资创下新纪录

来源:资本实验室摘要:与其他行业一样,全球医疗业的数字化正在逐步推进,并为风险资本带来更多的投资机会。总体来看,全球数字医疗投资正在快速增长,投资朝着中后期阶段延伸,机器学习等新技术扮演…

C++移位得到int型最大值

C里默认int型1的二进制表示为&#xff1a; 0000 0000 0000 0000 0000 0000 0000 0001如果左移31位&#xff0c;会得到最小值 1<<31 //会得到-2147483648&#xff0c;即int型最小值即 1000 0000 0000 0000 0000 0000 0000 0000因为int类型是有符号的&#xff0c;第一位…

揭秘星际2人工智能AlphaStar:DeepMind科学家回应一切

来源&#xff1a;机器之心25 日凌晨&#xff0c;人工智能 AlphaStar 与职业玩家 MaNa 进行了一场史无前例的「人机大战」&#xff1a;虽然之前在内部比赛中 AI 十战十胜&#xff0c;但现场比赛中&#xff0c;MaNa 机智地戏耍了对手&#xff0c;为人类取得了一场胜利。赛后&…