美文网首页
零基础玩转AI(3)--图像形态学处理

零基础玩转AI(3)--图像形态学处理

作者: Magnetor | 来源:发表于2019-08-02 13:29 被阅读0次

上次我们总结了图像的卷积操作和一般的拼接,融合,处理了小美女的图片等。本次我们介绍下图像卷积的简单应用--平滑和形态学。

零基础趣玩计算机视觉(3)--图像形态学处理

我们可能经常会遇到像去噪点,水印,去模糊,增强图片边缘等需求。无一例外,这些都可以通过用卷积操作来实现。只要我们选取了合适的卷积核,就可以得到我们想要的图片处理结果。

1.图像滤波的应用

我们还是以上次双马尾小姑娘图片为例:

零基础趣玩计算机视觉(3)--图像形态学处理

中值滤波:

最常见的,我们可能会处理噪声图片。一个图片可能会有很多的细小斑点,中值滤波就能很好的去掉这些独立噪声。中值滤波器如下:

零基础趣玩计算机视觉(3)--图像形态学处理

我们用这样的卷积核做卷积,只不过最后的加权平均并非像卷积一样求和。而是用卷积每一步结果的中间值代替。这就是中值滤波。比如:

零基础趣玩计算机视觉(3)--图像形态学处理

左边的妹子图是有椒盐噪声的图,右边是用中值滤波处理过的图。明显中值滤波对椒盐噪声的处理非常好。(椒盐噪声的由来,非常形象。我们把妹子图想象成豪大大鸡排,而椒盐噪声就好像撒在上面的椒盐佐料)

高斯滤波:

高斯滤波也是非常有用的滤波器,在图像平滑上效果很好。本质上也是一个卷积操作。当然,难度在于卷积核的确定。高斯卷积核,我们通过高斯公式来确定。

零基础趣玩计算机视觉(3)--图像形态学处理

当然常用的图像处理库都自带了高斯函数。我们只需要设置,卷积核大小和标准差即可。

如图:这是一个高斯平滑的例子。把图像变得更自然,图片边缘会更宽,更模糊。

零基础趣玩计算机视觉(3)--图像形态学处理

当然,这里还有均值滤波,就是每个卷积核计算后,并不是求和,而是采用平均值。还有双边滤波,这里都不在一一的介绍。说明几个给大家讲解下原理。

2.图像的形态学操作

接下来我们介绍下,图片最基本的形态学操作,腐蚀和膨胀。

腐蚀本质也是卷积操作,只是并非用卷积核的加权平均和,而是用卷积核覆盖区域内的最小值。

同样的,膨胀与腐蚀操作类似。只是用卷积核覆盖区域内的最大值。

卷积对应的计算结果,并不是卷积核和图像对应位置的和,而是卷积核在各个位置计算过后的,最大值(膨胀)或最小值(腐蚀)。

零基础趣玩计算机视觉(3)--图像形态学处理

我们通过滑动卷积核,在每个位置取卷积的最小值,得到腐蚀图。左边的课程表为原图,右边的为腐蚀图。

同样的膨胀图也很容易得出:

零基础趣玩计算机视觉(3)--图像形态学处理

可以看出,腐蚀就像图片生锈,会把主体数据变小。而膨胀就像图片充气,会把图片数据主体部分放大。

有了图片的腐蚀和膨胀。就可以衍生出很多图片操作。比如:我们可以先对图像腐蚀一次,再膨胀两次。这样即可以去除图片的噪点和粘连,又可以放大图片的主体(开运算)。同样的也可以先膨胀图片,再腐蚀图片,这样即可以把图片原本需要缝合的粘连再一起,也可以腐蚀掉不需要的噪点(闭运算)。

同样的,有了开运算和闭运算。我们还可以做开运算和闭运算的差(形态梯度),也可以做原图与形态图的差等等。当然这些都是腐蚀和膨胀的一些扩展应用。我们只需要理解腐蚀和膨胀的原理,能灵活运用即可。

在实际的图片处理中,图像的大小和噪声,粘连,缝隙等往往各不相同。我们很难找到一个统一的尺度,统一的卷积核大小来处理所有的图片。所以,形态学的操作更多的是做一些简单的辅助处理。对于过于复杂的图片进行形态学操作,往往在应用的通用性和鲁棒性上,会大打折扣。形态学操作往往很重要,但更多的只是辅助。

3.傅立叶变换的应用

在开始推导之前,首先我们需要认识一位男爵:让·巴普蒂斯·约瑟夫·傅里叶男爵。

零基础趣玩计算机视觉(3)--图像形态学处理

傅立叶男爵

没错,就是这个男人。他就是传说中的傅立叶。傅立叶首先猜想了,任意函数都可以分解成三角函数之和。

零基础趣玩计算机视觉(3)--图像形态学处理

写成公式如下:

零基础趣玩计算机视觉(3)--图像形态学处理

所有的函数都可以分解成上面的这个形式。

我们把cos(2PInx/T)和sin(2PINx/T)以及前面的常数1,当作一组新的基底。而前面的,C,An和Bn当作对应新基底坐标系的坐标。这样我们就得到了傅立叶变换的结果。其核心思想,就是把时间域内的函数,表示成以sin(x)和cos(x)系列的三角函数为基底的组合而已。

最终我们可以推出:

零基础趣玩计算机视觉(3)--图像形态学处理

带入公式得到:

零基础趣玩计算机视觉(3)--图像形态学处理

当然我们还可以表示成更简洁的复数形式。

3.1 首先我们根据泰勒公式:

零基础趣玩计算机视觉(3)--图像形态学处理

可以把自然常数e表示为:

零基础趣玩计算机视觉(3)--图像形态学处理

同样的如果我们把自然常数e的幂x换成ix(虚数i),则

零基础趣玩计算机视觉(3)--图像形态学处理

百度百科

很容易证明出来欧拉公式。

零基础趣玩计算机视觉(3)--图像形态学处理

有了欧拉公式,我们就可以简化傅立叶变换到另外一种形式。

零基础趣玩计算机视觉(3)--图像形态学处理

这里用了三角函数的合并。把后面的三角函数合并成了以自然常数e来表述的函数。

上面是周期函数的傅立叶级数形式。对于非周期函数,我们只需要把它当作周期无限大的周期函数处理即可:

零基础趣玩计算机视觉(3)--图像形态学处理

这里的w = 2PI/T。同样的我们把公式的未知量当作傅立叶变换,即可得到:

零基础趣玩计算机视觉(3)--图像形态学处理

这就是完整的傅立叶变换的推导思路。那么傅立叶变换在图像上的物理意义是什么样的呢?

零基础趣玩计算机视觉(3)--图像形态学处理

我们可以看到一个时域信号,从垂直方向的频域看过去,就是傅立叶变换的结果。

3.2 傅立叶变换在图像处理中的应用

傅立叶变换反应在图像上,就是图像的频率高低分布。图像中像素值变化比较大的地方,比如噪声和边缘,代表高频部分。背景和物体代表变化不大的低频部分。我们以妹子图为例:

零基础趣玩计算机视觉(3)--图像形态学处理

对应的傅立叶变换图:

零基础趣玩计算机视觉(3)--图像形态学处理

可以看到图像的中心区域为低频区域。(这里我用uint8来显示结果,所以中间有黑点)

频谱图有非常好的,平移不变性。我们可以基于频谱图做一些图像的高通/低通滤波,边缘锐化,模糊,图像主体的方向识别等操作。

比如,官网的文本检测的例子:

零基础趣玩计算机视觉(3)--图像形态学处理

我们可以根据傅立叶变换后的频谱图来判断当前图像的旋转角度,修正偏差。

本次的介绍就到这里。下次我们介绍图像的经典算法边缘算子,边缘检测,以及直方投影,霍夫变换和Freeman链码等。

相关文章

  • 零基础玩转AI(3)--图像形态学处理

    上次我们总结了图像的卷积操作和一般的拼接,融合,处理了小美女的图片等。本次我们介绍下图像卷积的简单应用--平滑和形...

  • OpenCV图像处理(七)图像滤波(2)

    1、形态学滤波 简单来说,形态学操作就是基于形状的一系列图像处理操作,最基本的形态学操作:膨胀、腐蚀。在图像处理中...

  • 形态学图像处理1

    形态学,即数学形态学(Mathematical Morphology),在图像处理中有广泛的应用,主要应用是从图像...

  • Opencv之形态学

    形态学处理 数学形态学(也称图像代数)表示以形态为基础对图像进行分析的数学工具。他的基本O思想是用具有一定形态的结...

  • 形态学操作

      图像形态学操作是基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学。主要有四个操作:膨胀,...

  • 博客收集

    1. 图像处理: 图像处理基本算法-形态学OpenCV-Pythonimage fusion 2. 图像数据: I...

  • 灰度形态学基本运算

    上海交通大学 医学图像处理 与二值形态学相对应另一种形态学运算是灰度形态学。灰度形态学与二值形态学相比,不仅在图像...

  • Morphology -形态学操作

    前言 简单的来讲,形态学操作是基于形状的图像处理操作,通过将结构元素作用于输入图像来输出图像。 对图像形态学运算,...

  • imgproce腐蚀膨胀

    形态学操作简单来讲,形态学操作就是基于形状的一系列图像处理操作。通过将 结构元素 作用于输入图像来产生输出图像。 ...

  • 形态学图像处理3

    细化算法 “骨架”是指一幅图像的骨骼部分,描述物体的几何形状和拓扑结构,是重要的图像描绘子之一。计算骨架的过程一般...

网友评论

      本文标题:零基础玩转AI(3)--图像形态学处理

      本文链接:https://www.haomeiwen.com/subject/tlkldctx.html