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
你想要在频域或时域做它吗? – ederwander