2

私は OpenCV を初めて使用し、画像処理の方法を学んでいます。私のプロジェクトの一部として、楕円形の画像パッチを目的の楕円にワープするという問題があります。私が理解している限りでは、2 つのパッチ間のアフィン変換を計算し、この変換を目的のパッチにワープする必要があります。助けを求めてインターネットを閲覧したところ、2 つの楕円パッチ間のアフィン変換を計算する方法が見つかりませんでした。私は正しい軌道に乗っていますか?進め方や詳しい情報をどこで探すべきか、アドバイスをいただければ幸いです。

4

1 に答える 1

1

要素が楕円であるという事実は、変換の計算には関係ありません。変換は、任意の形状に対しても同様に機能します。ある原点 O に関してアフィン変換 [A] と [B] があるとします。[A] と [B] の間の変換が必要です。これを行うにはいくつかの考え方がありますが、最も簡単な方法は、[A] から O への変換を取得し、次に O から [B] への変換を行い、それらを結合することです。[A] から O は単に [A] の逆であり、O から [B] は単に [B] であるため、

final_transform = [B]*inverse([A]);

ここに同様の質問があります。ベクトル表現で解くことも同様に有効です。

実際のワープを行うには、cv::warpAffineを使用できます

于 2012-10-09T16:14:26.723 に答える