Matlab之图像增强的频域增强

本文详细介绍了Matlab中图像增强的频域增强方法,包括低通滤波器(理想低通、巴特沃斯低通、高斯低通)、高通滤波器(高斯高通、巴特沃斯高通)、带阻滤波器(理想、巴特沃斯、高斯)、同态滤波、带通滤波器和陷波滤波器。通过实例和公式解析,帮助理解各种滤波器的工作原理和实现代码。
摘要由CSDN通过智能技术生成

从上节的回顾中,我们知道了图像增强可以分为点增强、空间域增强,频域增强;

 

空间域增强是直接在图片上增强,有各种现成的算子可供使用;但对于频域增强来讲,他是需要将图片先转换为频域才能进行转换,频域一般是进行滤波,如低通滤波,高通滤波等,今天就来讲一下频域增强所用的滤波方式;

第一大部分:低通滤波器(保留低频,过滤高频)

第一,理想低通滤波器,低通滤波器的作用就是保存低频,过滤高频;内容就是设置一个定值来作为范围,超过这个数的部分为0,低于这个数的部位为1,举例:

%低通滤波器
clc
clear all
I = imread('dream.jpg');
I = rgb2gray(I);
I = im2double(I);

m = 2*size(I, 1);%不乘2的话,D的范围减半以至于后面的部分都要减半,使得L无法成型
n = 2*size(I, 2);
x = -m/2 : (m/2-1);%获得在x方向的所有长度
y = -n/2 : (n/2-1);%获得在y方向上所有的长度
[X, Y] = meshgrid(x, y);%建立网格,方便进行计算到零点的距离,若步建立网格,会导致数组大小不兼容,建网格实际上是让他们的模板大小一样
D = sqrt(X.^2 + Y.^2);  %构造D矩阵,D是各位置与原点的距离
D0 = 80;  %D0为截止频率(中心频率)
H = double(D <= D0);%小于等于D0的位置为1,不满足的为0
J = fftshift(fft2(I, size(H, 1), size(H, 2))); %转换为频域再用fftshift进行平移,转换为与H相等大小的图像数据
K = J.*H;   %频域内滤波
L = ifft2(ifftshift(K));   %逆变换回到空域
L = L(1: size(I, 1), 1: size(I, 2));%因为L一开始是694*1040大小的,然后需要将其中转换为与原图片一样大的,若前面的M与N里面不乘以2的话,L的范围会比I小,同时显示出来的范围是不完整的

figure
subplot(121), imshow(I);
subplot(122), imshow(L);

因为我也是刚学,所以该程序是我从Matlab之图像增强技术(九)_我要糖的博客-CSDN博客_matlab图像增强

里面借鉴的,并且做了一些自己的理解;低频滤波器过滤掉高频使得图片边缘变模糊;

还有一种写法:

clc
clear all
I = imread('dream.jpg');
I = rgb2gray(I);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值