我想纠正来自两种不同形态(视觉和热量)的立体图像对。我使用
校准了两台相机[cameraParams,imagesUsed,estimationErrors] = estimateCameraParameters(imagePoints,worldPoints);
给我一个stereoParameter对象,因为imagePoints包含两种模态的匹配棋盘点。
为了纠正,我使用了以下电话:
[J1,J2] = rectifyStereoImages(I1,I2, cameraParamsStereo);
其中I1
是可视图像,I2
是热图像。不幸的是,这给了我错误:
使用rectifyStereoImages> parseInputs时出错(第106行)输入必须是 相同大小和数据类型。
rectifyStereoImages出错(第96行)[I1,I2,interp,outputView, fillValues] = parseInputs(...
两幅图像的分辨率完全不同(视觉为2048x1088,热量为384x288)。然而,从我的承诺来看,原则上的纠正仍然有效,因为在this论文中也是如此。但老实说,我不确定如何......
问题: 在MATLAB中有没有办法纠正不同大小的图像?如果没有,是否有可以轻松实现的算法?
答案 0 :(得分:0)
不幸的是,rectifyStereoImages
函数要求两个图像具有相同的大小。这是实现的限制,而不是算法。
您可以做的一件事是使用undistortImage
函数取消图像,查找匹配点(例如使用matchFeatures
),然后使用triangulate
函数获取稀疏图像3- D重建。
您还可以尝试通过用零填充较小的图像来使两个图像的大小相同。您需要在校准前填充校准图像,以便一切都一致。