1

世界座標に線があり、それを画像に投影します(この質問math.stackexchangeで説明されているように)。これにより、画像空間で単純な直線方程式が得られるため、画像内で OpenCV を使用して簡単に印刷できます。

次に、ラインを魚眼カメラ画像に投影したいと思います。対応する非線形歪み関数があるため、ポイントを簡単に歪めることができます。単純な方法は、この関数を使用して、生成されたラインから各ポイントを歪めることです。しかし、それはいくつかの線分と未設定のピクセル (通常は歪んだ線に属します) につながります。

正しい歪んだ線を取得するための賢い方法は何でしょうか。たぶん、線の投影を別の方法で処理する必要もありますか? 直線をより頻繁にサンプリングすることもできますが (つまり、サブピクセル座標を使用して)、正しい解決策を保証するものではないと思います。

編集:

私の歪み関数は単純な多項式です

r(a) = k1*a+k2*a^2+k3*a^3+k4*a^4

ここaで、 は光軸に対する歪みのない入射光線の角度であり、 はr歪みのある画像のピクセルまでの半径です。詳細については、こちらをご覧ください。

4

1 に答える 1

1

簡単な解決策は、回線解像度を上げることです。より多くのピクセルを追加すると (サブピクセルの方が優れています)、歪み後の画像の見栄えが良くなります。

より正しい方法は、 backward-mappingだと思います。歪んだイメージの各ピクセル (正方形、整数) から、歪んでいないイメージのピクセル (四角形、実数)へのマッピングを見つけます。これにより、歪んだ線に穴ができなくなります。

ここに画像の説明を入力

于 2016-06-09T09:06:34.603 に答える