7

中央にバーが近い画像のスタックがあります。スタックが進行するにつれて、バーは一方の端を中心にピボットし、スタック全体には、バーが水平の上または下に最大 45 度までさまざまな角度で回転した画像が含まれます。

ここに示すように:

ここに画像の説明を入力

他の処理を行う前に、バーや画像全体を回転させ、すべてを水平に揃える方法を探しています。理想的には、これは Matlab / imageJ / ImageMagick で行われます。私は現在、最初にキャニーエッジ検出、続いてハフ変換、続いて画像回転を使用する方法を考え出そうとしていますが、これがすでに解決されたより一般的な問題の特定のケースであることを願っています.

4

6 に答える 6

1

SIFT 変換を調べることができます。

バーの最悪のケースの推測を表す四角形を画像として取り、その回転行列を決定する必要があります。

http://www.vlfeat.org/overview/sift.htmlを参照してください。

于 2012-12-28T17:57:49.873 に答える
1

画像処理ツールボックスがある場合は、 regionprops を 'Orientation' プロパティと共に使用して角度を見つけることができます。

http://www.mathworks.com/help/images/ref/regionprops.html#bqkf8ji

于 2012-11-30T17:12:33.463 に答える
1

解決しようとしている問題は、イメージ レジストレーションまたはイメージ アライメントとして知られています。

-最初に必要なことは、画像をしきい値にすることです。そのため、白黒の画像になってしまいます。これにより、プロセスが簡素化されます。

-次に、画像の質量中心を計算し、それらを変換して互いの中心に一致させる必要があります。

  • 次に、画像を回転させて互いに一致させる必要があります。これは、主軸メジャーを使用して行うことができます。主軸は、母集団の分散の大部分を説明する 2 つの軸を提供します。これは基本的に、バーが指している方向を示すベクトルを提供します。次に、バーを同じ方向に回転させるだけです。

-主軸の変換後、画像を各方向にもう少し回転させて、回転を最適化することができます。

変換と回転の全体を通して、変換がどれだけ適切かを示すための尺度が必要です。このメジャーは、多くの場合があります。画像が白黒の場合は、単純に画像を減算するだけで十分です。それ以外の場合は、相互情報のような尺度を使用できます。

...また、procrustes 分析を見ることができます。matlab 関数については、このリンクを参照してください http://www.google.dk/search?q=gpa+image+analysis&oq=gpa+image+analysis&sugexp=chrome,mod=9&sourceid=chrome&ie =UTF-8#hl=da&tbo=d&sclient=psy-ab&q=matlab+procrustes+analysis&oq=matlab+proanalysis&gs_l=serp.3.1.0i7i30l4.5399.5883.2.9481.3.3.0.0.0.0.105.253.2j1.3.0...0.0 ...1c.1.5UpjL3-8aC0&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.&bvm=bv.1355534169,d.Yms&fp=afcd637d8ae07bde&bpcl=40096503&biw=1600&bih=767

于 2012-12-27T17:55:42.217 に答える
0

他の回答で示唆されているように、この問題にはいくつかのアプローチがあります。すでに試みているものとおそらく似ているアプローチの 1 つは、ハフ変換を使用することです。ハフ変換は、線の向きを検出するのに適しています。これをモルフォロジー処理と角度検出後の画像回転と組み合わせることで、角度変化を補正するシステムを作成できます。基本的な手順は次のとおりです。

  1. モルフォロジー演算を使用して、バーを単一線のブロブにします。
  2. この画像にハフ変換を使用します。
  3. 変換出力で最大値を見つけ、それを使用して方向角を見つけます。
  4. 角度を使用して元のイメージを修正します。

この方法の Computer Vision System Toolbox に付属する完全な例。http://www.mathworks.com/help/vision/examples/rotation-correction-1.htmlを参照して ください。

于 2012-12-27T19:19:09.400 に答える
0

与えられたものまたは世帯主の変換を試すことができますが、私は与えられた方が好きです。cos(angle) と sin(angle) を使用して与えられた行列を作成する角度が必要です。

于 2013-01-06T02:07:02.883 に答える
0

ImageJ のStackRegプラグインを使用します。100% 確実ではありませんが、既にFIJI (FIJI Is Just ImageJ)にインストールされていると思います。

編集:私はあなたの質問を読み違えたと思います。それは修正しようとしている画像のスタックではありませんよね? その場合、単純なアプローチ (おそらく最も効率的ではありませんが、確実に機能します) は、次のアルゴリズムです。

  1. 画像のしきい値を設定します(簡単に思えますが、背景は常に白です)
  2. 構造化要素として長い水平線を取得し、それで画像を膨張させます
  3. 構造要素を回転させ、画像を膨張させ続け、膨張のサイズを測定します。
  4. それを最大化する角度は、画像を修正するために必要な回転角度です。
于 2012-11-30T09:17:49.920 に答える