频域滤波

 

频域滤波是在频率域对图像做处理的一种方法。步骤如下:

滤波器大小和频谱大小??相同,相乘即可得到新的频谱。

高频信息:图像中那些快速变化的部分,即边缘和细节部分。

低频信息:图像中那些平缓的部分,决定了图像的基本灰度等级。

滤波后结果显示:低通滤波去掉了高频信息,即细节信息,留下的低频信息代表了概貌。

常用的例子,比如美图秀秀的磨皮,去掉了脸部细节信息(痘坑,痘印,暗斑等)。高通滤波则相反。

https://www.xuetangx.com/courses/course-v1:HUST+603+sp/about?jwt_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvd25lciI6Im5ld194dWV0YW5neCIsInVzZXJfaWQiOjg3OTY4NDF9.QaP-_Tm-4oqqnpZJxFB8vZHhqvM6ROuIExq1E_OjVp8&owner=new_xuetangx

MATLAB中的空域滤波频域滤波是数字图像处理中常用的两种图像滤波方法。空域滤波是指在图像的原始像素域进行滤波操作,它是一种直接操作像素的方式。频域滤波则是将图像转换到频域进行滤波,这里所说的频域指的是图像的二维傅里叶变换域或者小波变换域等。 在MATLAB中,你可以使用一些内置函数来完成空域和频域滤波。空域滤波可以使用imfilter()函数来实现,该函数提供了多种不同类型的滤波器,包括平滑、锐化、边缘检测等。而频域滤波则需要将图像先进行傅里叶变换或小波变换,然后再使用一些函数进行滤波处理,例如dftfilt()函数和wavedec2()函数等。 下面是空域和频域滤波的简单示例代码: 空域滤波: ```matlab % 读取图像 img = imread('lena.png'); % 创建一个平均滤波器 h = fspecial('average', [3 3]); % 对图像进行滤波处理 img_filtered = imfilter(img, h); % 显示结果 figure; subplot(1, 2, 1), imshow(img), title('原始图像'); subplot(1, 2, 2), imshow(img_filtered), title('平滑处理后的图像'); ``` 频域滤波: ```matlab % 读取图像 img = imread('lena.png'); % 对图像进行傅里叶变换 img_fft = fft2(img); % 构造一个高斯滤波器 sigma = 10; [M, N] = size(img); [X, Y] = meshgrid(1:N, 1:M); centerX = ceil(N/2); centerY = ceil(M/2); h = exp(-((X-centerX).^2 + (Y-centerY).^2)/(2*sigma^2)); % 对频域数据进行滤波处理 img_fft_filtered = img_fft .* h; % 对处理后的数据进行傅里叶反变换 img_filtered = ifft2(img_fft_filtered); % 显示结果 figure; subplot(1, 2, 1), imshow(img), title('原始图像'); subplot(1, 2, 2), imshow(uint8(abs(img_filtered))), title('高斯滤波处理后的图像'); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值