Opencv之形态学

作者: 木夜溯 | 来源:发表于2016-07-27 15:54 被阅读816次

    形态学处理

    数学形态学(也称图像代数)表示以形态为基础对图像进行分析的数学工具。他的基本O思想是用具有一定形态的结构元素去量度和提取图像中的对应形状以达到对图像分析和识别的目的。数学形态学的应用可以简化图像数据,保持他们基本的形状特征,并出去不相干的结构。数学形态学的算法有天然的并行实现的结构。
    在图像处理方面,二值形态学经常应用到对图像进行分割,细化,抽取骨架,边缘提取,形状分析,角点检测,分水岭算法等等。由于其算法简单,算法能够并行运算所以经常应用到硬件中。

    形态学运算中腐蚀,膨胀,开运算和闭运算。

    1. 腐蚀

    腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。
    腐蚀的算法:
    用3x3的结构元素,扫描图像的每一个像素
    用结构元素与其覆盖的二值图像做“与”操作
    如果都为1,结果图像的该像素为1。否则为0。
    结果:使二值图像减小一圈

    2. 膨胀

    膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。可以用来填补物体中的空洞。
    膨胀的算法:
    用3x3的结构元素,扫描图像的每一个像素
    用结构元素与其覆盖的二值图像做“与”操作
    如果都为0,结果图像的该像素为0。否则为1
    结果:使二值图像扩大一圈

    3. 开运算

    先腐蚀后膨胀的过程称为开运算。用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。
    dst = open(src, element) = dilate(erode(src,element))


    开运算示例

    4. 闭运算

    先膨胀后腐蚀的过程称为闭运算。用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。
    dst = open(src, element) = erode(dilate(src,element))


    闭运算示例

    5. 形态学梯度

    膨胀图与腐蚀图之差。



    能够保留物体的边缘轮廓

    形态学梯度示例

    6. 顶帽

    原图像与开运算结果图之差
    dst = tophat(src, element) = src - open(src, element)


    顶帽示例

    7. 黑帽

    闭运算结果图与原图像之差


    黑帽示例

    相关文章

      网友评论

        本文标题:Opencv之形态学

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