下面的matlab程序错误在哪里?怎么不运行?
clear
f=imread('w2.bmp');
I2=imnoise(f,'salt & pepper');
imshow(I2);title('噪声图像');
PQ=paddedsize(size(I2));
[U,V]=dftuv(PQ(1),PQ(2));
D=sqrt(U.^2+V.^2);
D0=0.05*PQ(2);
F=fft2(f,PQ(1),PQ(2));
H=exp(-(D.^2)/(2*(D0^2)));
g=dftfilt(f,H);
figure, imshow(ifftshift(H),[])
figure,imshow(log(1+abs(ifftshift(F))),[])
figure, imshow(g,[ ])
追问:你能告诉我可以执行的正确程序吗?
答案:试试看下面这个函数,把这个存成paddedsize.m文件,就可以调用了
function [PQ,n]=paddedsize(AB,CD,PARAM)
n=nargin;
if nargin==1
PQ=2*AB;
elseif nargin==2 & ~ischar(CD);
PQ=AB+CD-1;
PQ=2*ceil( PQ/2);
elseif nargin==2
m=max(AB);
P=2^nextpow2(2*m);
P=[P,P];
elseif nargin==3
m=max([AB,CD]);
P=2^nextpow2(2*m);
PQ=[P,P];
else
error('wrong number of inputs')
end
其他:paddedsize这个函数我这里没有定义,没法运行!
假如A、B是一个矩阵:
A=[3 4; 5 6];
B=[5 4; 3 2];
C=A>B
那么 A>B 返回的值也是一个矩阵,值为对应元素的比较结果,大于返回1,小于返回0
所以结果为:
C =
0 0
1 1
除非C矩阵全部为1, if里的语句才会执行!
不知道说明白否?
上一个:Matlab中可以查看newpnn函数的源代码吗?如果可以怎么看?
下一个:基于MATLAB平台的高程控制网平差软设计谁会啊,给个小程序就行,间接平差的