問題タブ [image-registration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
873 参照

c# - 比較的特徴のないオブジェクトの画像レジストレーション手法

あまり運がなくても画像登録を実行しようとしています。

下の画像は私の「参照」画像です。Web カメラを使用して同じオブジェクトの画像をさまざまな向きで取得し、これらの画像を変換して、参照画像にできるだけ近づける必要があります。

検出対象

この問題を解決するために、Aforge.NET ライブラリと Accord.NET ライブラリ両方使用しています。

特徴検出・抽出

これまで、この記事で使用した画像のスティッチング方法を試してきました。特定の種類の画像ではうまく機能しますが、残念ながらサンプル画像では機能しないようです。オブジェクト自体はかなり当たり障りのないものであり、多くの機能を持たないため、アルゴリズムは多くの相関ポイントを見つけません。上記のアプローチの 2 つのバージョンを試しました。1 つは Harris コーナー検出器を使用し、もう 1 つはSURFを使用しますが、どちらも必要な結果が得られませんでした。

オブジェクトに「人為的に」機能 (ステッカー、マーキングなど) を追加することも 1 つのオプションかもしれませんが、可能であればこれは避けたいと思います。

形状検出

また、この記事で使用した形状検出方法のいくつかのバリエーションも試しました。理想的には、オブジェクトの明確に定義された 4 つの円/穴を検出したいと思います。次に、これらの座標を使用して、画像の変換に使用できる変換行列 (ホモグラフィ?) を作成できます。

残念ながら、4 つの円すべてを確実に検出することはできません。円の検出を改善するために、画像を前処理する無数の方法を試しましたが、完璧なシーケンスを見つけることができません。私の通常の操作は次のとおりです。

  • 画像をグレースケールにする
  • フィルターを適用する (平均、中央値、保守的平滑化、適応平滑化など)
  • エッジ検出の適用 (Homogenity、Sobel、Difference、Canny など)
  • カラー フィルタリングを適用する
  • 実行形状/円検出器

4 つの円を確実に検出するために適用する適切な一連のフィルターを見つけることができません。

画像・テンプレートマッチング

繰り返しますが、オブジェクトの 4 つの円/穴を検出したいので、画像/テンプレート マッチング手法を試しましたが、ほとんど成功しませんでした。テンプレート (円の 1 つの小さな画像) を作成し、Exhaustive Template Matchingアルゴリズムを実行しましたが、あまり成功しませんでした。通常、テンプレートが作成された穴の 1 つだけを検出します。

要約すれば

この問題を解決するために正しいテクニックを使用しているように感じますが、どこが間違っているのか、どこに注意を向けるべきなのかよくわかりません。

どんな助けや指針も大歓迎です。

0 投票する
2 に答える
367 参照

opencv - 画像レジストレーション プロセスの信頼性の評価

バックグラウンド:

2 つの異なる視点から同じシーンの 2 つのショットがあると仮定します。それらに登録アルゴリズムを適用すると、それらの間の関係を表すホモグラフィ行列が得られます。このホモグラフィ マトリックスを使用してそれらの 1 つをワープすると、(理論的には) 2 つの同一の画像が得られます (非共有領域が無視される場合)。

完全なものは存在しないため、2 つの画像は完全に同一ではない可能性があります。それらの間にいくつかの違いが見られる場合があります。この違いは、それらを差し引いて明らかに示すことができます。

例:

シーン 1 シーン 2

Scene2 を Scene1 にワープ

AbsDiff (シーン 1、シーン 2 をシーン 1 にワープ)

さらに、照明条件によっては、差し引いたときに大きな差が生じる場合があります。

問題:

登録プロセスの精度を評価できる指標を探しています。このメトリックは次のようになります。

  1. 正規化:画像タイプ (自然シーン、テキスト、人物など) に関係のない 0->1 測定値。たとえば、まったく異なる写真のペアに対する 2 つのまったく異なるレジストレーション プロセスが同じ信頼度 (0.5 としましょう) を持っている場合、これは同じ良い (または悪い) レジストレーションが発生したことを意味します。これは、ペアの一方が非常に詳細な写真用であり、もう一方が黒で「こんにちは」と書かれた白い背景であっても適用する必要があります。

  2. 位置ずれの精度と照明条件の違いの区別: この違いをなくして 2 つの画像をほぼ同じに見せる方法はたくさんありますが、修正するのではなく、それらをカウントしない測定を探しています (パフォーマンスの問題)。

最初に頭に浮かんだことの 1 つは、2 つの画像の絶対的な違いを合計することです。ただし、これはエラーを表す数値になります。別の登録プロセスと比較する場合、この数値は意味がありません。登録がより適切であるが、より詳細な別の画像は、より小さい誤差ではなく、より大きな誤差をもたらす可能性があるためです。

長い投稿で申し訳ありません。さらなる情報を提供し、解決策を見つけるために協力できることをうれしく思います。

PS OpenCVの使用は許容され、望ましいです。

0 投票する
0 に答える
222 参照

image-processing - ImageJ: 参照として 1 つのレイヤーを使用した 2 つのマルチページ TIF 画像の画像登録

2 つの TIF イメージ (スタックなし、4 つのカラー チャネルのみ) を登録する方法を探しています。

画像1: L1、L2、L3、L4

画像2: L1*,L5,L6,L7

レイヤー 1 は、画像間の参照レイヤーとして使用されます。そこで、L1 と L1* を使用して変換行列を計算し、その変換を image2 の L5、L6、L7 に適用したいと思います。

優先的にバッチ機能を使用して、これを行うことができるプラグインはどれですか? 私が見つけたもの (turboreg、stackreg、bunwarpJ など) は、非スタックまたは「カラー」画像、またはその両方を処理できず、それらのほとんどはバッチを処理できません。

どうもありがとう、マリオ

0 投票する
1 に答える
504 参照

matlab - 変更された 3D RAW ファイルを保存する方法は?

私は3次元304 x 224 x 52で、Matlab(float64、変形ベクトルフィールド、つまり画像登録の結果)で生ファイルを読み込もうとしています.

次に、このファイル内のすべての値を 10 で割って変更します。

その後、変更したファイルを同じ仕様の raw ファイルとして再度保存したいと考えています。コードを書きましたが、ファイルを保存できません。raw形式で再度保存したい。何かが足りないのではないかと思います。私は Matlab の初心者なので、ご理解とご協力をお願いいたします。ありがとうございました。

0 投票する
2 に答える
737 参照

python - PythonでITKクラスを拡張するには?

SimpleITK は使いやすい Python インターフェイスを提供します。そこからクラスを延長できますか?

登録の問題を解決する必要があります。そのためには、カスタマイズした登録クラス、特に類似性メトリックを作成する必要があります。Python で SimpleITK を拡張して使用するにはどうすればよいですか?

0 投票する
1 に答える
259 参照

matlab - 画像レジストレーションの精度の評価

ここで説明されているように、Matlab で 2 つの多時間衛星画像から SURF 特徴を抽出することにより、画像登録を実行しています。

提供された手順はうまく機能しているようで、ターゲット画像が固定画像に正しく配置されていることが視覚的にわかります。

メソッドの精度にアクセスするにはどうすればよいですか? つまり、「これらの 2 つの画像は互いに "XX" % 位置合わせされている」というようなステートメントを作成する方法はありますか?

0 投票する
2 に答える
4412 参照

matlab - 既にキャプチャされた RGB 画像と深度画像の位置合わせ

MATLAB を使用して、1 つの rgb と別の深度の 2 つの画像を整列させようとしています。私はこれについていくつかの場所をチェックしたことに注意してください -ここ、キネクトデバイスを必要とするここキャリブレーションにはカメラパラメータが必要であると書かれているここ. 方法はわかりませんが、2つの画像を一致させるためにEPIPOLAR GEOMETRYを使用することも提案されました。私が言及しているデータセットはrgb-dt face datasetで与えられています。そのような例の 1 つを以下に示します。

画像

基本的に、関心のある顔領域を指定する境界ボックスを意味するグラウンド トゥルースは既に提供されており、それらを使用して顔領域のみをトリミングします。matlab コードを以下に示します。

切り抜かれた 2 つの画像 rgb と depth を以下に示します。トリミングされた画像


画像を登録/整列する方法はありますか。ここからヒントを得まし た。ここでは、基本的なソーベル オペレーターが RGB 画像と深度画像の両方で使用され、エッジ マップが生成されます。次に、一致する目的でキーポイントを生成する必要があります。両方の画像のエッジ マップがここで生成されます。

edge_map.

ただし、ノイズが多いため、この画像のキーポイント マッチングを実行できるとは思えません。

同じことをするためにmatlabでいくつかのアルゴリズムを提案できる人はいますか?

0 投票する
1 に答える
2685 参照

python - Pythonでサブピクセル精度で画像配列をシフトするには?

2D FFT とフーリエ変換シフト定理を使用して、サブピクセル精度で画像を表す 2D 配列をシフトしようとしています。シフト値が整数 (ピクセル精度) の場合はうまく機能しますが、シフト値が整数でない場合、つまりピクセルの一部である場合、多くのアーティファクトが発生します。コードは以下のとおりです。

したがって、shift_fft(input_array,[2,0]) は機能しますが、shift_fft(input_array,[2.4,0]) はアーティファクトなしでは機能しません。私が間違っていることは何ですか?たとえば、128x128 ピクセルのレナの画像を考えてみます。各方向に 10.4 ピクセルずつシフトしたい場合、画像のウォブリング変調が発生します。画像は次のとおりです。

前:

レナ、シフト前

後:

レナ、シフト後