パワースペクトル解析​の動径方向分布と角度​方向分布について radial direction and angular directions of Power spectrum

9 vues (au cours des 30 derniers jours)
eri yamabe
eri yamabe le 31 Août 2021
Commenté : eri yamabe le 2 Sep 2021
二次元フーリエ解析をして,パワースペクトルを得て,動径方向分布と角度方向分布のデータを得たいと思っています.
どなたか動径方向と角度方向の分布を得られるコードを教えてください.お願いします.
二次元フーリエ変換に関しては以下のコードを書きました.
I did a two-dimensional Fourier analysis and got the figure of Power spectrum.
Then I want to get the data on radial direction and angular directions.
Can anyone tell me that?
For the two-dimensional Fourier analysis, the following code was used.
rgb =imread('.jpg');
I = rgb2gray(rgb);
figure
imshow(I)
Y = fft2(I);
imagesc(abs(fftshift(Y)))
imagesc(log(abs(fftshift(Y))));

Réponse acceptée

Atsushi Ueno
Atsushi Ueno le 31 Août 2021
Modifié(e) : Atsushi Ueno le 31 Août 2021
function [Zr, R] = radialavg(z,m,xo,yo) % Radially averaqe 2D square matrix z into m bins
MATLABに専用の関数は見つかりませんでしたが、File Exchangeで「動径方向の分布を得るradialavg関数」を見つけました。リンク先からダウンロードして、radialavg.mを現在のフォルダに置けば利用可能です。ご使用の条件に合うか試してみてください。また、デモ用のテストコードradialavg_tester.mが同梱されており、それを実行すればradialavg関数の機能が一目瞭然です。主な仕様を調べ下記に羅列しました。
  • 入力する2次元行列は正方行列である事
  • ドーナツ状マスクの幅、即ちビンの分割数を設定する事が可能(m)
  • ドーナツ状マスクの中心座標をオフセットする事が可能(-1 <= x0,y0 <= 1)
  • ドーナツ状マスクの要素数は動径と共に変化するが、要素数で割った値(平均値)を出力している
  • 円から外れる四隅の部分は動径方向の分布集計に含まれない
  • 入力する2次元行列にNaN値が含まれてもそれを無視した結果を出力可能
% 質問に掲載のコードの続きとして書くコード例
m = 101; % 半径方向のbin分割数+1
[Yr,r] = radialavg(Y,m); % オフセットは省略(=0)
plot(r,Yr,'o');
  7 commentaires
Atsushi Ueno
Atsushi Ueno le 2 Sep 2021
Modifié(e) : Atsushi Ueno le 2 Sep 2021
radialavg_tester.m だけでは実行不可能で,定義として何かしら必要なのでしょうか?
→MATLABだけで動きます。radialavg_tester.m(デモ用のテストコード) の他に、radialavg.m(radialavg関数の本体)も必要です。下記のページでDownloadボタンを押すとまとめてダウンロードできます。
eri yamabe
eri yamabe le 2 Sep 2021
失礼致しました.パスが通っていませんでした.
また,教えて頂いたコードの例は,既存のものに付け加えて使うことができました.
出力された結果が理解しきれなかったので,radialavgのコードも読みながら読み取ろうと思います.
ありがとうございます.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!