OpenCV超过JPEG图像和EXIF方向的意外相机校准结果

时间:2016-06-21 15:39:14

标签: c++ opencv jpeg exif camera-calibration

我正在利用OpenCV来校准一组图像。我正在使用OpenCV提供的标准函数cv::calibrateCamera,这里没什么特别的。图像为JPEG格式,并设置EXIF方向标志(可以是!= 1)。

我注意到如果图像不是全部左上方(Orientation == 1),校准结果是错误的,通常会导致非常高的RMS误差。相反,如果我手动更正方向(例如,使用mogrifyexiftool),则结果与预期一致。

你曾经遇到过这种行为吗?你能解释一下为什么会这样吗?

作为旁注,我在通过Homebrew安装的Mac OSX El Capitan上使用OpenCV 3.1。代码是用C ++编写的。

1 个答案:

答案 0 :(得分:0)

你正在使用imread或cvLoadImage吗? imread for opencv 3.1似乎正确处理exif,但cvLoadImage没有。请参阅以下opencv错误https://github.com/opencv/opencv/issues/6673