图像滤波:
参考链接:
https://www.jianshu.com/p/4ae5e8cef9ae
https://blog.csdn.net/qq_27261889/article/details/80822270
https://blog.csdn.net/wsp_1138886114/article/details/82872838
1.均值滤波(cv2.blur):取除了中心点之外的所有点的均值。
优点:对于去除胡椒盐噪声比较好
缺点:不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊。
2.中值滤波(cv2.medianBlur):取所有像素点灰度值的中值,让周围的像素值接近的真实值,从而消除孤立的噪声点。
优点:对于去除胡椒盐噪声比较好。
缺点:也是不能保护图像细节,会变模糊。
3.高斯滤波(cv2.GaussianBlur):取邻域内的所有像素值的加权平均值,离中心越近的像素权重越高。
优点:是一种线性平滑滤波,适用于消除高斯噪声,平滑效果更柔和,而且边缘保留的也更好。
缺点:xxx
4.双边滤波(cv2.bilateralFilter):两个滤波器(一个空间分布的,一个像素值关系的),比高斯滤波多了一个高斯方差,一个空间分布的,一个像素值关系的;它是基于空间分布的高斯滤波函数,所以在边缘附近,离的较远的像素不会太多影响到边缘上的像素值,这样就保证了边缘附近像素值的保存。
优点:是一种非线性的滤波方法,能在去除噪音的同时保持边缘的信息。
缺点:与其他滤波器相比会速度比较慢。
椒盐噪声:由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。
椒盐噪声往往由图像切割引起,去除脉冲干扰及椒盐噪声最常用的算法是中值滤波。
1.低通滤波可以消除噪声
2.高通滤波可以提取边缘
3.傅里叶变换:图片做傅里叶变换->滤波(低通/高通)->傅里叶逆变换
(因为中心是低频,低通是设置中心是1,其他是0;高通则反过来)
图像增强:
参考链接:https://blog.csdn.net/dcrmg/article/details/53677739
1.直方图均衡化:通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高图像的对比度。
对比度较低的图像适合使用直方图均衡化方法来增强图像细节。
2.拉普拉斯算子:使用中心为5的8邻域拉普拉斯算子与图像卷积可以达到锐化增强图像的目的。
0 -1 0
-1 5 -1
0 -1 0
3.对数Log变换:将图像的低灰度值部分扩展,显示出低灰度部分更多的细节,将其高灰度值部分压缩,减少高灰度值部分的细节,从而达到强调图像低灰度部分的目的。
4.伽马变换:主要用于图像的校正,将灰度过高或者灰度过低的图片进行修正,增强对比度。
图像梯度:
公式:https://blog.csdn.net/Real_Myth/article/details/50827940
代码实现:https://blog.csdn.net/gaoyi221119/article/details/103782288
1.Brenner 梯度函数:简单的计算相邻两个像素灰度差的平方
2.Tenengrad 梯度函数:采用Sobel算子分别提取水平和垂直方向的梯度值
3.Laplacian 梯度函数:与Tenengrad梯度函数基本一致,用Laplacian算子替代Sobel算子
4.SMD(灰度方差)函数:完全聚焦时,图像最清晰,图像中的高频分量也最多,故可将灰度变化作为聚焦评价的依据
5.SMD2 (灰度方差乘积)函数:对每一个像素领域两个灰度差相乘后再逐个像素累加
6.Reblur 二次模糊:对待评测图像进行一次高斯模糊处理,得到该图像的退化图像,然后再比较原图像和退化图像相邻像素值的变化情况,根据变化的大小确定清晰度值的高低,计算结果越小表明图像越清晰,反之越模糊。
边缘检测:目的是标识数字图像中亮度变化明显的点
参考链接:https://www.cnblogs.com/lynsyklate/p/7881300.html
1.Roberts 交叉梯度算子:在检测边缘效果已经相当不错了,但是它对噪声相当敏感,有噪声的时候效果不佳
−1 0
0 1 垂直梯度
0 1
−1 0 水平梯度
2.Prewitt算子:
−1 -1 -1
0 0 0
1 1 1 垂直梯度
-1 0 1
-1 0 1
-1 0 1 水平梯度
3.Sobel算子:对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高,当对精度要求不是很高时,是一种较为常用的边缘检测方法。
−1 -2 -1
0 0 0
1 2 1 垂直梯度
-1 0 1
-2 0 2
-1 0 1 水平梯度
4.Laplace算子:
0 1 0
1 -4 1
0 1 0
1 1 1
1 -8 1
1 1 1
5.Canny算子:
实现步骤:高斯模糊->计算梯度幅值和方向->非极大值 抑制->滞后阈值
图像形态学处理:
参考链接:
https://www.cnblogs.com/yibeimingyue/p/10856439.html
http://imgtec.eetrend.com/d6-imgtec/blog/2018-09/17662.html
膨胀:求局部最大值,原图与核进行卷积,将最大值赋予指定像素,效果就是亮的区域膨胀了。
图像中的高亮部分进行膨胀,类似于领域扩张,效果图拥有比原图更大的高亮区域
腐蚀:操作与膨胀相反,求局部最小值,效果就是亮的区域缩小了。
原图的高亮部分被腐蚀,类似于领域被蚕食,效果图拥有比原图更小的高亮区域
开运算:先腐蚀后膨胀,其作用是:分离物体,消除小区域和噪声。
闭运算:先膨胀后腐蚀,其作用是:填补物体内部的空洞。
使用场景:如果我们的目标物体外面有很多无关的小区域,就用开运算去除掉;如果物体内部有很多小黑洞,就用闭运算填充掉。
形态学梯度(膨胀图-腐蚀图):可以用形态梯度来保留物体的边缘轮廓
顶帽(原图-开运算图):因为开运算带来的结果是放大了裂痕或者局部低亮度的区域,因此顶帽得到的效果图突出了比原图轮廓周围的区域更明亮的区域
黑帽(闭运算-原图):效果图突出了比原图轮廓周围的区域更暗的区域;黑帽运算用来分离比临近点暗一点的斑块,效果图有着非常完美的轮廓