我是MATLAB新手,我试图将高通butterworth滤波器应用于我的数据图像。我收到以下错误:错误使用。*矩阵尺寸必须一致?
Error using `.*` Matrix dimensions must agree.
这里是我的代码:
function[]=Preprocessing()
I = imread('Photo0029.jpg');
imshow(I);
imDouble=im2double(I);
fftlogim=fft(log(imDouble+0.01))
f=butterhp(I,15,1);
c=fftlogim.*f;
h=real(ifft(c));
figure,ishow(h);
h1=exp(h);
ifftshow(h1);
和这里的butterhp
功能:
function[out]=butterhp(im,d,n)
h=size(im,1);
w=size(im,2);
[x,y]=meshgrid(-floor(w/2):floor(w-1)/2,-floor(h/2):floor(h-1)/2);
out=1./(1.+(d./(x.^2+y.^2).^0.5).^(2*n));
end
谁能帮助我解决这个问题?
您应该在帖子中设置您的代码的格式,以便阅读和理解。 –
简单:您的矩阵尺寸不相等。尝试乘以两个相等大小的矩阵。另外:这个标题还有几个问题,如果没有系统说明,我不能从中删除MATLAB。请先搜索。 – Adriaan
让我猜,你的照片是RGB?你需要保持它在RGB,或正在处理它的灰度好吗? – hbaderts