show fourier transformed image in different scale

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 comentarios

maria
maria el 5 de Mayo de 2014
sorry, my mistake. do you have any idea?
I removed the flag since someone deleted her prior question.

Iniciar sesión para comentar.

Respuestas (1)

Image Analyst
Image Analyst el 5 de Mayo de 2014
Try this:
imshow(img, 'xData', [-2700,2700], 'ydata', [-2700,2700]);
axis on;

3 comentarios

maria
maria el 5 de Mayo de 2014
Editada: maria el 5 de Mayo de 2014
that worked but when i try to find the brightest point of the image, the coordinates of the pixel are given in terms of the native image, not with the new one.
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;
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

Iniciar sesión para comentar.

Categorías

Preguntada:

el 5 de Mayo de 2014

Comentada:

el 6 de Mayo de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by