2017-09-14 15 views
0

イメージは複素数の行列として表され、行列のサイズはm×mです。複素数の位相を計算する

画像の位相を計算する正しい方法はどれですか?

  1. angle/atan2

    Img_phase = angle(img); 
    

    または

    Img_phase = atan2 (imag(img),real(img)); 
    

    またはそれらの両方が正しい

  2. 位相を計算する前にフーリエ変換を行う必要がありますか?

    img_fft = fftshift (fft2 (img)); 
    

    そして

    Img_phase = angle(img_fft); 
    

    又は

    Img_phase = atan2 (imag(img_fft),real(img_fft)); 
    
  3. 私は1枚の画像が複数ある場合、私は、位相を計算する前に画像(最大値で割る)を正規化する必要があります?

For example these images which represent the outputs of a simulation。詳細はthis link

私は出力を(複雑な数の行列として)より多くの処理のためにエクスポートしました。まず、前に述べた段階を計算したいと思います。

+0

可能な複製[?画像の位相を意味しない何](https://stackoverflow.com/questions/9644708/what-does-phase:角度、すなわち、実際のスケーリングファクタに依存しませんイメージの意味) – Wolfie

+0

イメージの位相*は意味をなさない。 –

+0

@Wolfie提供されたリンクは私の質問に答えません。 – Shdotcom

答えて

0

angleatan2

atan2(imag(img),real(img))angle(img)の違いは非常に明確である:何もありません。

function p = angle(h) 

p = atan2(imag(h), real(h)); 

だから、あなたがやりたいが、angleは理解し多少容易になることがあります。angleのソースコードをチェックしてください。

フーリエ変換を行う必要がありますか?

これは、画像の意味や好みによって異なります。

イメージを正規化する必要がありますか?

問題ではありません。

angle(1+3i) == angle(5*(1+3i)) 
+0

あなたの答えをありがとう、** "イメージの意味に依存する" **あなたは何を意味していますか?**私に例を教えてください。 – Shdotcom

+1

@Shdotcom例を提供する責任はあなたの肩にありますが、これはあなたのアプリケーションですか? – Wolfie

+0

@Shdotcom私はあなたのアプリケーションを知らず、通常私は想像上のイメージでは動作しません。多分、想像上の画像はすでに別の実画像のフーリエ変換ですか?だから、私は知らないし、おそらく誰もそれ以上の情報なしでそれを知っていることを意味します。 – m7913d

関連する問題