我是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