下面的matlab程序错误在哪里?怎么不运行?

下面的matlab程序错误在哪里?怎么不运行?,第1张

试试看下面这个函数,把这个存成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

看你的程序,总共应该只有三个图形窗口,每个窗口有两个图

先把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)

希望能帮到你,祝好运,呵呵。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11552652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存