私は魚眼カメラで作業しており、さらに計算する前に歪みを逆にする必要があります。この質問では、これが起こっています魚眼歪みの修正
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 よりも時間効率の良い他のアプローチであっても、助けていただければ幸いです。
ありがとう