2016-06-21 52 views
1

我正在利用OpenCV來校準一組圖像。我正在使用OpenCV提供的標準功能cv::calibrateCamera,這裏沒什麼特別的。圖像採用JPEG格式,並設置了EXIF方向標誌(它可以是!= 1)。使用OpenCV在JPEG圖像和EXIF方向上發生意外的相機校準結果

我注意到,如果圖像不是全部左上(定向== 1),校準結果是錯誤的,通常會導致非常高的RMS誤差。相反,如果我手動更正方向(例如使用mogrifyexiftool),則結果如預期。

你有沒有遇到過這種行爲?你能解釋一下爲什麼會發生這種情況嗎?作爲一個方面說明,我在通過Homebrew安裝的Mac OSX El Capitan上使用OpenCV 3.1。代碼是用C++編寫的。

回答

0

你使用imread還是cvLoadImage? imc for opencv 3.1似乎正確處理exif,但cvLoadImage沒有。看到下面的opencv錯誤https://github.com/opencv/opencv/issues/6673

+0

其實,我正在使用'imread'。儘管如此,我還是不明白爲什麼圖像方向會影響校準。 – lec00q

+0

你所有的圖像都是一樣的嗎?作爲支票,在找到棋盤角並將角落寫入圖像後,保存每張圖像的副本。將圖像保存爲png,以便丟棄旋轉信息,並且這可能會顯示一些問題 – Paulus

+0

當然,它們的方向不一樣。這應該如何影響校準?我只是將一組點座標傳遞給校準程序,而不是圖像本身。儘管如此,我認爲我不會回答我的問題,但我會選擇你的答案作爲最好的(也是唯一的)答案。謝謝你的時間。 – lec00q