【发布时间】:2014-07-16 05:29:12
【问题描述】:
我刚开始使用 OpenCV 中的 Mono Camera Calibration。 因此我使用来自的示例代码 http://docs.opencv.org/doc/tutorials/calib3d/camera_calibration/camera_calibration.html 这很方便,写得很好。
现在的问题是我使用横向和纵向图像作为输入。这些图像都是 1600x1200 像素并显示棋盘,但是在其中一些图像中,视图旋转了 90 度。现在代码是这样的:
view = imread(s.imageList[i], 1);
if(view.empty())
continue;
remap(view, rview, map1, map2, INTER_LINEAR);
imshow("Image View", rview);
imwrite(s.imageList[i], rview);
重新映射(消除失真)成功,但保存的图像被裁剪为风景图像。这意味着该算法以某种方式尝试将未失真的图像置于肖像形状中,从而导致: http://picload.org/view/lccorri/img_0197.jpg.html
有人知道为什么会这样吗?
【问题讨论】:
-
rotated 90 degrees你的意思是你有 1200x1600px 的图片吗?或者您将相机旋转了 90°,仍然有 1600x1200 像素的图像? -
我的意思是我将相机旋转了 90°,因此图像为 1200x1600px(宽 x 高)。
标签: c++ opencv camera-calibration distortion remap