show fourier transformed image in different scale

2 ビュー (過去 30 日間)
maria
maria 2014 年 5 月 5 日
コメント済み: maria 2014 年 5 月 6 日
hey, i have the following code which i apply to my image:
A=imread('C:\Users\Viviko\Desktop\173149_11', 'tif');
A2=fft2(A);
iptsetpref('ImshowAxesVisible','on')
imshow(log(abs(fftshift(A2))+1),[])
i want to change the scale in axes and instead of going from 0 to approximately 2700, i'd like 0 to be shown in the middle of the axes, and so i could have both negative and positive coordinates. can please somebody give me a hint?
  3 件のコメント
maria
maria 2014 年 5 月 5 日
sorry, my mistake. do you have any idea?
Image Analyst
Image Analyst 2014 年 5 月 5 日
I removed the flag since someone deleted her prior question.

サインインしてコメントする。

回答 (1 件)

Image Analyst
Image Analyst 2014 年 5 月 5 日
Try this:
imshow(img, 'xData', [-2700,2700], 'ydata', [-2700,2700]);
axis on;
  3 件のコメント
Image Analyst
Image Analyst 2014 年 5 月 6 日
Right. It gives the row, rowOfMax, and column, columnOfMax. You need to come up with a spatial calibration to convert row 1 to -2700 and the last row to +2700.
[rows, columns, numberOfColorChannels] = size(img);
[rowOfMax, columnOfMax] = find(img == max(img(:)));
xMax = (2700*2) * ((columnOfMax-1)./rows) - 2700;
yMax = (2700*2) * ((rowOfMax-1)./rows) - 2700;
maria
maria 2014 年 5 月 6 日
still sth is not working well, when I try this:
f = zeros(30,40);
f(5,20)=1;
[rows, columns, numberOfColorChannels] = size(f);
[rowOfMax, columnOfMax] = find(f == max(f(:)));
xMax = (size(f,2)*2) * ((columnOfMax-1)./columns) - size(f,2)
yMax = (size(f,1)*2) * ((rowOfMax-1)./rows) - size(f,1)
instead of getting the point (0, -10) I get xMax=-2 and yMax=-22

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeImages についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by