我想用 XTion 的深度图像映射 Flir 的热图像。由于深度图像是从 Xtions IR 相机计算出来的,我想用 Xtions IR 图像映射 Flir。
因此,我将两台相机放在彼此靠近的一个平面上(x 轴约 7 厘米,y 轴约 1 厘米,z 轴约 3 厘米)。
然后我使用 ROS Indigo 和 openCV 2.4.9 来:
- 将 Flir Focus 设置为修复(无自动对焦)
- 使两个图像同步。
- 将 Xtion IR 图像的大小从 640x480 像素调整为 320x240 像素作为 Flir 图像
- 计算两个相机的内在相机参数。(Flir + Xtion IR)
- 计算外在参数
- 重新映射两个图像以获得校正后的图像
我现在有两个校正后的图像,但在 X(水平方向)上仍有偏移。
如果我理解正确,由于焦距和视场不同(带物镜的 Flir:45° H x 33.8° V 和 9.66mm 焦距,XTion:58° H x 45° V),我有偏移,并且可以用透视变换解决问题,但我没有两个焦距以毫米为单位。
数据表:
- http://support.flir.com/DsDownload/Assets/48001-0101_en_40.pdf
- https://www.imc-store.com.au/v/vspfiles/assets/images/1196960_en_51.pdf
- http://www.asus.com/us/Multimedia/Xtion_PRO_LIVE/specifications/
我有获得焦距的想法,cv::calibrationMatrixValues
但我不知道光圈和高度。
我该如何解决这个问题?