4

画像登録用のアルゴリズムを探しています (できればソース コードが利用可能な場合)。画像の変形は、ホモグラフィ行列では記述できません (歪みは対称ではなく、均一ではないと思うため)。より具体的には、変形はバレル/歪みと台形歪みのようなもので、おそらく画像の回転です。2つの画像のピクセルのペアを取得したいので、「変形フィールド」の表現を取得できます。

私はよくグーグルで検索し、いくつかの物理学のアイデアに基づいたアルゴリズムがあることを知りましたが、それらは局所的な最大値に収束することはできますが、グローバルには収束しないようです. プログラムを半自動にすることもできます。これは、単純なユーザー操作を意味します。

たぶんSIFTのようないくつかのアルゴリズムが適切でしょうか? しかし、それでは十分な密度の「変形フィールド」を提供できないと思います。

それが重要な場合、スケールの変更はありません。

複雑なフィールドの例 http://www.math.ucla.edu/~yanovsky/Research/ImageRegistration/2DMRI/2DMRI_lambda400_grid_only1.png

4

2 に答える 2

3

あなたが探しているのは「オプティカルフロー」です。これらの用語を検索すると、多数の結果が得られます。

OpenCVには、必要な処理を実行するcalcOpticalFlowFarneback()(ビデオモジュール内)と呼ばれる関数があります。C APIには、「オプティカルフローの決定」と呼ばれるHorn&Schunck(1981)による古典的な論文の実装がまだあります。

また、私が行ったこの作業をいくつかのコードとともに見ることもできます(ただし、注意してください。openclメモリコードにはまだいくつかの不思議なバグがあります。今年後半に修正バージョンをリリースします。):http:/ /lts2www.epfl.ch/people/dangelo/opticflow

OpenCVのオプティカルフロー(および私のもの;-)に加えて、完全な画像レジストレーションチェーン(主に医用画像を目的とした)については、itk.orgのITKを参照してください。

googleのおかげで見つけることができるオプティカルフローコード(matlab、C / C ++ ...)もたくさんあります。たとえば、cs.brown.edu /〜dqsun / research / software.html、gpu4visionなどです。

-編集:オプティカルフローについて-

オプティカルフローは、高密度アルゴリズムとその他のアルゴリズムの2つのファミリーに分けられます。密なアルゴリズムはピクセルごとに1つの動きベクトルを与え、密でないアルゴリズムは追跡された特徴ごとに1つのベクトルを与えます。

密集したファミリの例には、Horn-SchunckとFarneback(opencvを維持するため)、およびより一般的には、画像全体(さまざまなTV-L1フローなど)のコスト関数を最小化するアルゴリズムが含まれます。

非高密度ファミリーの例は、opencvではLucas-Kanadeと呼ばれるKLTです。

密集したファミリでは、各ピクセルの動きがほとんど自由であるため、スケールの変化に対応できます。ただし、これらのアルゴリズムは通常、線形化(モーションのテイラー展開と画像の変更)に依存しているため、大きなモーション/スケールの変更の場合に失敗する可能性があることに注意してください。さらに、変分アプローチでは、各ピクセルが全体的な結果に寄与します。したがって、1つの画像に表示されない部分は、アルゴリズムを実際のソリューションから逸脱させる可能性があります。

とにかく、これらの制限を回避するために、粗い実装から細かい実装などの手法が採用されており、これらの問題は通常、わずかな影響しか及ぼしません。残忍な照明の変化、または大きな遮蔽/非閉塞領域も、いくつかのアルゴリズムによって明示的に処理できます。たとえば、オプティカルフローフィールドと一緒に「革新」のまばらな画像を計算するこの論文を参照してください。

于 2012-04-25T11:43:09.073 に答える
0

医療に特化したソフトウェアをいくつか見つけましたが、複雑で単純な画像形式では機能しませんが、必要なことはしているようです。 http://www.csd.uoc.gr/~komod/FastPD/index.html ドロップ - 離散最適化を使用した変形可能な登録

于 2012-05-04T08:17:50.700 に答える