MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   计算机视觉/图像处理 (https://www.labfans.com/bbs/forumdisplay.php?f=67)
-   -   [问题] 帮忙看下哪里出错了 (https://www.labfans.com/bbs/showthread.php?t=14830)

残月90 2012-04-20 21:50

帮忙看下哪里出错了
 
I=imread('001.jpg');
fftimage=fftshift(fft2(double(I))); % 对条纹图像I 进行二维傅里叶变换
figure,plot(mat2gray(abs(fftimage(257,:)))); % 显示频谱图
arrinput = ginput; % 鼠标选取高低频之间的波谷位置?点一下?按回车
arrtemp = fftimage(257,:);
[FringeMax,FringeMaxIndex] = max(arrtemp(arrinput(1,1):512));
% 得到从选取点开始向右的最大值(波峰)?并记录位置
FringeMaxIndex = round(arrinput(1,1) + FringeMaxIndex - 1);
% 得到1 级谱(基频)的波峰位置
maxvalue=max(fftimage(1,FringeMaxIndex:512));
% 取出1 级谱的位置。257 表示第257 行(中间行?谱的位置)
[m,n]=find(fftimage==maxvalue); % 取出1 级谱最大值位置
fringe_num=abs(n-m); % 确定条纹个数
sidelobe=zeros(512);
w =6; % 设定频域滤波窗口宽度?窗口为 6 个像素(根据情况改变)
sidelobe(:,n-w:n+w)=fftimage(:,n-w:n+w); % 取出窗口提取的基频分量
sidelobe_ifft=(ifft2(ifftshift(sidelobe))); % 变换基频到中心?并傅里叶反变换
sidelobe_phase=angle(sidelobe_ifft); % 得到条纹图的折叠相位(相位主值)
imshow(sidelobe_phase);


显示
??? Subscripted assignment dimension mismatch.

Error in ==> Untitled2 at 16
sidelobe(:,n-w:n+w)=fftimage(:,n-w:n+w); % 取出窗口提取的基频分量


所有时间均为北京时间。现在的时间是 01:16

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.