滤波和卷积

什么叫滤波:用白话讲就是,一个电信号中有若干种成分,把其中一部分交流信号过滤掉就叫滤波。

卷积和滤波的区别:在数字信号处理的理论中,卷给可以说是一种数学运算,而滤波是一种信号处理的方法。卷积就像加权乘法一样,你能说滤波和加权乘法是一样的吗,显然不行;但是滤波最终是有乘法来实现的。

自适应滤波就是滤波所用的模板系数会根据图像不同位置自动调整。
中值滤波(median filter)简单的说就是:一个窗(window)中心的象素值就是这个窗包含的象素中处于中间位置的象素值。
均值滤波(mean filter)就是一个窗中心的象素值就是这个窗包含的象素的平均值。
空间频率主要是指图像的平滑或粗糙程度。一般可认为,高空间频率区域称“粗糙”,即图像的亮度值在小范围内变化很大,而“平滑”区,图像的亮度值变化相对较小,如平滑的水体表面等。低通滤波主要用于加强图像中的低频成分,减弱高频成分,而高通滤波则正好相反,加强高频细节,减弱低频细节,简单地讲:高通滤波处理过的图像更加“粗糙”。高通滤波顾名思义就是让频率高的通过,使图像具有锐化效果;低通滤波则恰好相反了,它是使低频通过,使图像具有平滑的效果。

 

模板的定义
所谓模板就是一个系数矩阵
模板大小:经常是奇数,如:
3x3   5x5   7x7
模板系数: 矩阵的元素
w 1 w 2 w 3
w 4 w 5 w 6
w 7 w 8 w 9

空域过滤及过滤器的定义:使用空域模板进行的图像处理,被称为空域过滤。模板本身被称为空域过滤器
空域过滤器的分类
按效果分:钝化过滤器,锐化过滤器
按数学形态分类
1,线性过滤器:使用乘积和的计算,例如:R = w1z1 + w2z2 + … + wnzn
高通:边缘增强、边缘提取
低通:钝化图像、去除噪音
带通:删除特定频率、增强中很少用
2,非线性过滤器:结果值直接取决于像素邻域的值
最大值:寻找最亮点,亮化图片
最小值:寻找最暗点,暗化图片
中值:钝化图像、去除噪音


钝化过滤器的主要用途
1,对大图像处理前,删去无用的细小细节
2,连接中断的线段和曲线
3,降低噪音
4,钝化处理,恢复过分锐化的图像
5,图像创艺(阴影、软边、朦胧效果)
缺点:
如果图像处理的目的是去除噪音,那么,低通滤波在去除噪音的同时也钝化了边和尖锐的细节,但是中值滤波算法的特点:在去除噪音的同时,可以比较好地保留边的锐度和图像的细节锐化过滤器的主要用途
1,印刷中的细微层次强调。弥补扫描、挂网对图像的钝化
2,超声探测成象,分辨率低,边缘模糊,通过锐化来改善
3,图像识别中,分割前的边缘提取
4,锐化处理恢复过度钝化、暴光不足的图像
5,图像创艺(只剩下边界的特殊图像)
6,尖端武器的目标识别、定位

过滤器效果的分析
1,常数或变化平缓的区域,结果为0或很小,图像很暗,亮度被降低了
2,在暗的背景上边缘被增强了
3,图像的整体对比度降低了
4,计算时会出现负值,归0处理为常见

基本高通空域滤波的缺点和问题
高通滤波在增强了边的同时,丢失了图像的层次和亮度

均值滤波卷积实现过程是将每个像素点周围的像素点的灰度值取平均作为该像素点的新灰度值。关键代码如下: ```python def mean_filter(img, kernel_size): pad_size = kernel_size // 2 padded_img = np.pad(img, pad_size, mode='edge') filtered_img = np.zeros_like(img) kernel = np.ones((kernel_size, kernel_size)) / kernel_size**2 for i in range(img.shape[0]): for j in range(img.shape[1]): filtered_img[i, j] = np.sum(padded_img[i:i+kernel_size, j:j+kernel_size] * kernel) return filtered_img ``` 中值滤波卷积过程则是将每个像素点周围的像素点的灰度值排序,取中位数作为该像素点的新灰度值。关键代码如下: ```python def median_filter(img, kernel_size): pad_size = kernel_size // 2 padded_img = np.pad(img, pad_size, mode='edge') filtered_img = np.zeros_like(img) for i in range(img.shape[0]): for j in range(img.shape[1]): filtered_img[i, j] = np.median(padded_img[i:i+kernel_size, j:j+kernel_size]) return filtered_img ``` 高斯滤波卷积过程是将每个像素点周围的像素点的灰度值按照高斯分布加权平均,以此作为该像素点的新灰度值。关键代码如下: ```python def gaussian_filter(img, kernel_size, sigma): pad_size = kernel_size // 2 padded_img = np.pad(img, pad_size, mode='edge') filtered_img = np.zeros_like(img) x, y = np.meshgrid(np.arange(-pad_size, pad_size+1), np.arange(-pad_size, pad_size+1)) kernel = np.exp(-(x**2 + y**2) / (2*sigma**2)) kernel /= kernel.sum() for i in range(img.shape[0]): for j in range(img.shape[1]): filtered_img[i, j] = np.sum(padded_img[i:i+kernel_size, j:j+kernel_size] * kernel) return filtered_img ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值