揭阳网站制作机构,招聘网站官网,wordpress php.ini在,值得买网站模板文章目录 背景实际效果查找资料资料1资料2 解决方案最终结果 背景
目前在做的项目用到两个摄像头#xff0c;一个是热成像摄像头、另一个是普通的rgb摄像头。 一开始的目标是让他们像素级重合#xff0c;使得点击rgb图像时#xff0c;即可知道其像素对应的温度。但是在尝试… 文章目录 背景实际效果查找资料资料1资料2 解决方案最终结果 背景
目前在做的项目用到两个摄像头一个是热成像摄像头、另一个是普通的rgb摄像头。 一开始的目标是让他们像素级重合使得点击rgb图像时即可知道其像素对应的温度。但是在尝试的过程中发现基本不可能。因为由于纵深、遮挡、透视变形、视差等问题两个摄像头拍摄到的东西可能会很不一样对不上。 但是应该可以参考opencv的双目标定做出横向对齐的效果。【opencv/samples/cpp/stereo_calib.cpp】
实际效果
但是尝试了直接用这个方法来操作发现出来的效果简直毫无效果画面随意飞有时整个画面黑屏看不到任何东西。
查找资料
然后不断地找资料发现很早之前就有人尝试了类似的想法了。
资料1
【stereoCalibrate for different cameras (rgb and infrared)】 这个人有一组照片里面有rgb照片以及与其对应的ir照片他放在这里可以从这里下载需要梯子【rgbir】。 他的需求也是实现两个相机画面的极平面、极线对齐。直接用了stereoCalibrate出来的效果不好。 他提出这个问题之后有个人【BConic之前好像是叫AldurDisciple】回答了他。说可以尝试一下先独立地对每个相机进行标定得到相机内参然后再设置参数 CALIB_USE_INTRINSIC_GUESS CALIB_FIX_INTRINSIC 去使用stereoCalibrate应该能够取得较好的效果。
从后续来看提出问题的人【DmT021】反馈基本解决了问题。
资料2
从另外一篇问答【Big reprojection error while using OpenCV cvStereoCalibrate to calibrate a pair of cameras with different resolution】来看这种先独立标定再联合求解的方法应该是可行的。
解决方案
先独立地对每个相机进行标定然后再联合使用stereoCalibrate进行标定。 在进行标定之前先对图像进行剪裁、缩放使他们具有同样的尺寸。上面的资料好像说不用同样尺寸也行暂时不清楚他们是如何使用的 在使用stereoCalibrate时注意参数为CALIB_USE_INTRINSIC_GUESS CALIB_FIX_INTRINSIC 。
最终结果
一般但是咬咬牙应该也可以用。 两个图像都旋转且裁剪了很多。有可能是我的样本的问题后面采集多一些不同角度的再来标定试试。 参考 【基于OpenCV的双目测距系统实现】 【双目相机标定以及立体测距原理及OpenCV实现】