对采集的图像进行平滑滤波或者边缘增强属于图像预处理的范畴,目的是位后续的内容的特征提取、识别等提供更好的源数据
平滑降噪
边缘增强
卷积
首先明确一点,在对图像进行处理时,由于是二维数据,所以所有的运算必须使用适合二维数据的形式。例如卷积运算,卷积运算最初用于一维的数字信号处理领域,通俗定义是一个系统最终的输出受前面各个时刻的输出影响,影响的叠加值为最终的输出,数学定义:
而针对图像处理时,需转换为二维形式:
自然的,使用矩阵形式来表示最为直观:
此时g被称之为卷积核,图像处理中也称其为模板。二维卷积的具体计算过程:卷积核以此沿着水平垂直方向滑动,与卷积核的中心位置对齐的像素为本次待修改元素,具体如何修改则以来核的特性
也就是说不同的卷积核可以实现不同的修改结果,比如后面提到的平滑降噪与边缘增强,其计算过程均依赖该计算方式。
平滑降噪
实际上平滑与降噪是分离的两部分工作,比如图像去噪,只想去掉图像的躁点,而不需要模糊到图像上的边缘。而图像平滑时,是不关注是否有噪点的,只是想把灰度变化激烈的部分进行平滑。但是早期图像平滑和去噪很多的算法是相似性的,或者用图像平滑的方法来达到去噪的目的。因此将两者放在一起学习也没有问题
平滑滤波中的均值滤波与高斯滤波均是在空域中,基于邻域计算某一像素的新灰度值,次操作可有效去除噪声,但是会将边缘模糊
基于高斯函数生成对应的高斯核
使用上述高斯核与图像所有像素进行卷积,完成滤波效果
细想一下,使用一定尺寸的领域均值或者高斯值替换原像素值实质是一种积分的思想,在频域中解释就是保留低频消除高频的低通滤波器
边缘增强
对应提取图像内物体特征来讲,相比于平滑产生的边缘模糊,清晰的边缘特征是更加有利的。所以与平滑操作相对的边缘增强,实质上就是通过边缘处灰度值变化剧烈这一特征:通过一阶导数、二阶导数作为系数保留变化剧烈的边缘特征,例如比较经典的sobal算子、拉普拉斯算子等
sobal算子
索贝尔算子(Sobeloperator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值。在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量,计算公式(离散偏导计算法则):
写为矩阵也就是卷积核形式:
而某一像素的边缘检测值就是两个方向的平方后再开平方,当然也可直接求和:
对应的梯度方向信息:
差分实际就是微分,所以此处就是通过微分来检索图像灰度变化强烈的像素点,在频域中解释就是保留高频消除低频的低通滤波器(此处频率指灰度的变化程度)
拉普拉斯算子
进一步,可采用二阶导数描述边缘。与一阶导数相比,二阶导数可增强更精细的细节,因此是适合锐化图像的一个理想特性。另外,与实现一阶导数相比,实现二阶导数所需的运算量更少,例如典型的线性拉普拉斯算子计算公式:
拉普拉斯算子会突出图像中的急剧灰度过渡,并且不强调缓慢变化的灰度区域。这往往会产生具有灰色边缘线和其他不连续性的图像,它们都叠加在暗色无特征背景上。将拉普拉斯图像与原图像相加,就可“恢复”背景特征,同时保留拉普拉斯的锐化效果,即: