计算机视觉系列04-高斯函数让图片的锐化和噪声和平共处

讲师:小黄同学

上节课,我们讲的去噪处理,其实还有个名字叫模糊处理。如果对卷积范围内的数据做一个平均值的话,也就是说本来是有一点点变化的一些图像上的样子,就慢慢把变得都差不多,因为都取平均了,他们直接会变得非常接近。那么这种就会产生图片的模糊,所以模糊跟去噪两个是非常相似的。如果用平均的话,但是我们其实真正去噪的目的是为了什么?保留图像的边缘,而把噪声给去掉。所以还有一种改进的方法,上次说到中值滤波。中值滤波是排中值,用中值代替现在这里面的所有值。那么其实可以判断就说对于椒盐噪声是图像里一个孤立的点,那么在3×3的范围内,它经常就是一个极大值点。

接下来先看看图像的边缘,也是为今天这节课锐化作一个铺垫。

图片的边缘处理

边缘是一条黑白界限的一条线,图像上一般看到这种边缘,而不会是一条直线那么明显。这边比如是一个黑块,那么跟这周围这个白块就形成鲜明的对比,一般这种位置就会叫是边缘。我们可以发现这个边缘,如果我们在边缘这边画这么一个小的框框在边缘上的点,我们会发现其实它上和下的位置,或者说周围附近其实还是有一些点跟中间这个值是比较接近的边缘上这一个点。

边缘上的点经常是什么样?可能如果就黑白的话,经常会是255,其实周围还是有一些点跟他接近的,而不像噪声点噪声点,它就是一个最大或者最小值,我们要做处理。

如果不是这样子,要是像这样图中这样的不是一个极大或者极小值点,那么我们就认为就是说这个点是一个边缘上的点,不应该把它去除。

图片锐化的过程

锐化是要让图像中的边缘这些细节更加清晰,但是要让这些边缘细节更加清晰的同时,又能让图片中噪点不会变得更加清晰。这个就是我们的目的。

这是黑白分明的一块,周围这些边缘黑白分明,我们可以想象一下,要构造一个什么样的卷积核,可以提取出这个边缘上的点,点的数值就会非常大,经过这个卷积核和覆盖在图片上这一块,因为他中间这个点就是这么一个卷积核。

比如说3×3肯定是有个中间位置,如果它正好就压在图像上边缘上,然后经过计算全对应位置相乘,然后加起来求平均值对应位置相乘,加起来之后这个数值要比较大。

对于这个中心点不是在边缘上的点,对应位置相乘全部加起来,值会比较小,我们该构造一个什么样的?左右互检,左右的颜色差异是不是会比较大,颜色差异比较大,那么也就是说这个数值之间差的会比较大,那么这边左右互检就可以产生一个比较大的数值,那么也就造成了边缘上这个点的值会比较大,但如果就是在一块纯白或者纯黑的区域里面,那么左右像素值都是一样的,那么一减都为零,所以加起来还是为零,就会比较浅。

那么这个时候就可以把边缘黑色的全部给提取出来,提取的是什么样的?我们可以看到因为是左右互检,要左右相差是比较大,所以提取的是一条竖直的线。按照同样方法提取出横线。

看一下图片上的效果,但是可以发现,如果这样子的话就会出现一个情况,如果是一张黑白图,边缘就会很亮,就是算出来非常大。其他地方算出来基本接近于零,那就是黑不溜秋的。

试想,一个姑娘想让自己的脸上一些地方更清晰,结果变成了一个黑脸婆,就一些轮廓是白的肯定不行。经过这种核处理好的图片,比如叫A。现在边缘的地方就变得更加更加清晰了,是亮的,其他地方偏暗,那我们要想让原图中边缘更加清晰就是什么呢?

原图边缘上面的值增加一下,就跟旁边的这些值区分度就比较大,可以让细节更加清晰。所以他会把原图跟A相加加,我把这个数值一叠加,那不就把这里面亮的边缘的值,相当于原图中边缘的地方给它加上一个值,让它跟周围区别的更区别一点,这样就让图像变得更清晰了。

当然这里面会给A加一个权重值,如果直接加过来,会导致一边值太大。所以会加一个W,你就可以去控制了W,调大点或者调小点,锐化的效果也就会不一样。

如果原图里面有很多噪点,经过这些矩阵之后,噪点也会变得非常大,变得异常的明显。所以我们经常会使用先对一张图像利用那种均值或者中值滤波进行去噪,再进行用锐化的卷积核对图片进行锐化这样效果会好一点。

刚刚说的锐化是利用的什么呢?其实我们知道一张图像左右相差比较大,是可以反映成什么呢?我们可以把图像看成是一个函数,XY就是坐标,那坐标上的像素值可以看作是XY这个坐标的一个函数。这个函数在图像上,这一个点左右差异大不大,就可以用梯度来看。如果梯度为负,那么朝一个方向颜色就是在递减。如果梯度值很大,就是递减的很快,就会看到很明显的差异。

梯度这个概念还是很重要的,尤其是图像的梯度,因为这些核都是根据梯度去设置出来的,所以图像的梯度大家也去了解一下。因为图像里面XY是一个离散的数,不像连续的X可以取一个无限的值,因为像素一个一个的它是离散的,所以这个梯度也要进行离散化。具体的计算和推导就不赘述了。

由梯度可以引出高斯拉普拉斯算子,去噪和锐化的一个集合。又想抑制图片中噪声,又想让图像变得清晰,大家要记住高斯拉普拉斯算子。

高斯函数利用高斯值给卷积核里面的值赋值,就相当于给图片里面每个像素这么一个权重值,当然是高斯权重。所以高斯其实也具备图像的去噪功能。那么高速具备渠道功能,对高斯函数进行二次求导,就得到了高斯拉普拉斯算子用这个算构成卷积核。这个出来图像就会很好清晰。