我用魚眼攝像頭的工作,需要之前的任何進一步的計算中的扭轉變形, 在這個問題上發生這種情況Correcting fisheye distortion反向魚眼失真
src = cv.LoadImage(src)
dst = cv.CreateImage(cv.GetSize(src), src.depth, src.nChannels)
mapx = cv.CreateImage(cv.GetSize(src), cv.IPL_DEPTH_32F, 1)
mapy = cv.CreateImage(cv.GetSize(src), cv.IPL_DEPTH_32F, 1)
cv.InitUndistortMap(intrinsics, dist_coeffs, mapx, mapy)
cv.Remap(src, dst, mapx, mapy, cv.CV_INTER_LINEAR + cv.CV_WARP_FILL_OUTLIERS, cv.ScalarAll(0))
這樣做的問題是,這重映射功能通過所有點並創建一個新的圖像。這在每一幀都很耗時。 我所尋找的方式是在魚眼圖片上進行點到點的平移以獲得正常的圖片座標。
我們所採用的方法是對輸入框架進行所有計算,並將結果座標轉換爲世界座標,因此我們不希望瀏覽圖片的所有點並創建一個新的圖片的。 (時間對我們來說非常重要)
在矩陣mapx和mapy中有一些點對點的翻譯,但很多點沒有完整的翻譯。 我試圖插入這個矩陣,但結果不是我正在尋找的。
任何幫助將非常讚賞,甚至比cv.Remap更具時間效率的其他方法。
感謝
從問題中不清楚您是要保持圖像不失真還是僅僅是一組離散圖像位置(可能不是整數,即具有亞像素精度)。如果後者是預期的數量比圖像區域小得多?請澄清。 –
@FrancescoCallari是的,你是對的我只是想要少量的點數,基本上我想拿起輪廓會找到他們的中心點,並且會希望這個把這個變成未扭曲的位置,然後鳥眼位置 – Khashayar