例如,我具有任意的過濾器:Matlab圖像頻域濾波
H = 12*(sin(PI*u)*cos(PI*v))
如何可以將此過濾器應用到圖像?我在互聯網上搜索有關應用濾波器的內容,就像使用matlab內部濾波器模型,它不是這樣的。
我是圖像處理新手,感謝您的幫助。
例如,我具有任意的過濾器:Matlab圖像頻域濾波
H = 12*(sin(PI*u)*cos(PI*v))
如何可以將此過濾器應用到圖像?我在互聯網上搜索有關應用濾波器的內容,就像使用matlab內部濾波器模型,它不是這樣的。
我是圖像處理新手,感謝您的幫助。
在頻域中應用濾波器意味着應用Fourier Transform of Convolution. 這與將濾波器和信號相乘一樣簡單。
originalImage_fft = fft2(originalImage);
filter_fft = fft2(filter);
resultImage_fft = originalImage_fft .* filter_fft;
resultImage = ifft2(resultImage_fft);
過濾的時域:
resultImage = conv2(originalImage, filter);
過濾和b
以在sti圖像中最佳濾除圖像中的高頻噪聲會保留這些邊緣特徵。
ImageFreDomain = fft2(ImageTimeDomain);
FilteredImageFreDomain = ImageFreDomain .* H;
FilteredImageTimeDomain = real(ifft(FilteredImageFreDomain));
imagesc(FilteredImageTimeDomain)
我會建議你使用sin(pi*a*u)*cos(pi*b*v)
,你可能需要調整的a
值
filteredImage = H.*Image
謝謝。因此,對於sin矢量化乘法cos,是不是意味着它們的行和列應該像X * Y和Y * Z,而X,Z是圖像的行數和列數? –
是的。我還建議你使用H = exp( - (u。^ 2 + v。^ 2)/ a)來比較兩個低通濾波器 – lennon310
爲此您可以使用圖像處理工具箱imfilter的過濾器。您的應用程序的語法是:
FilterImage = imfilter(Image, H)
你想要在頻域或時域做它嗎? – ederwander