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
看你的程序,总共应该只有三个图形窗口,每个窗口有两个图先把function PQ=paddedsize(AB,CD,PARAM)
存成paddedsize.m文件
f=imread('lena.gif')以下是主函数
(重要)dftuv这个函数没有,它会出错,从程序的作用来看,它应该是一个拿paddedsize函数的输出值来计算高斯滤波器参数H的一个函数
整个这个程序说白了就是先给图像增加噪声,再比较几种滤波(去噪)方法的优劣,将处理后的图像显示出来
f=imread('D:\1.jpg')PQ=paddedsize(size(f))%我没有这个函数,所以调试不了
[U,V]=dftuv(PQ(1),PQ(2))
D0=0.1*PQ(2)
F=fft2(f,PQ(1),PQ(2))
%H=exp(-(U.^2+V.^2)/(2*(D0^2)))% 这行有错误,改成 ./
H=exp(-(U.^2+V.^2)./(2*(D0^2)))
g=dftfilt(f,H)
希望能帮到你,祝好运,呵呵。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)