原创文章,欢迎转载,转载请注明出处

首先什么是图像形态学?额,这个抄下百度到的答案。
基本思想:
    用具有一定形态的结构元素去度量和提取图像中的对应形状已达到对图像分析和识别的目的,形态学图像处理表现为一种领域运算方式(这个和前面的模糊运算是一样的运算方式),效果取决于结构元素(就是前面smooth里面的核)的大小,内容以及逻辑运算的性质。
看了这些定义是不是很晕,对很晕。。。我比较关心的是它的用途和怎么计算。
    用途是:简化图像数据,保持他们基本的形状特性,并出去不相干的结构。
    基本运算包括:二值腐蚀和膨胀、二值开闭运算。其实开运算就是先腐蚀再膨胀,闭运算就是先膨胀再腐蚀。
    具体可以参看:http://wenku.baidu.com/link?url=CerKo-2R4zjP8RrmAmIkZ5YnQcJWbew0TNYBgBUnXd0NZ1djhN6nP6DXxU_b4fE1ITT4dsXB1tl3-3RTZNGcd0KGge89Ms72clAPq5Oj0ae
   简单的说,膨胀就是在选定的核下计算像素的最大数值,腐蚀和膨胀是相反的,就是在选定的核下计算像素的最小值。
    可以通过下图来看得形象写,数学渣表示只会看这种图
膨胀示意图如下:

腐蚀示意图如下:

后面我们的运算全部用默认的3*3的核,数值全为1,如上图所示的核。

那他们主要用来干嘛呢?效果又怎样呢?这个我们先进行下运算,然后把结果现实出来再说。
   先准备素材,准备两幅图片,两幅图片的拍摄位置略有不同,然后我们将他们相减再求绝对值,就可以看到大致轮廓了,如果是拍摄位置完全相同的图像,相减再求绝对值就是全黑了。

下面左边为其中一张原图,右边为相减再求绝对值后的图,记为diff图。

另外一张原图就没放上,他们看上去一样,指示拍摄位置稍有不同,上面已经讲过了。
后面我们在diff图的基础上进行膨胀、腐蚀、开和闭运算。

运算结果如下:
从左到右从上到下依次为:  腐蚀(erode)                                     膨胀(dilate)
                                          开运算(先腐蚀再膨胀 cleandiff)        闭运算(先膨胀再腐蚀 dirtydiff)

效果已经看到了,现在可以总结下这些运算的作用了。
闭运算可以使物体的轮廓线变得光滑,闭运算具有磨光物体内边界的作用,而开运算具有磨光图像边界的作用。
说起来还是有点绕口,不知道是用来干嘛的?我们百度下来个总结:
开操作作用:
  使轮廓平滑,抑制物体边界的小离散点或尖峰,用来消除小物体、在纤细点出分离物体、平滑较大物体边界的同时并不明显改变其面积。
闭操作的总用:

  用来填充物体内细小空洞、连接临近物体、平滑其边界的同时并不明显改变其面积。
 感觉上面的图看起来和结论比起来不是那么的明显对应啊。。因为我们不是二值图,如果用二值图的画效果就会和结论比较对应了。哈

OpenCV学习 7:图像形态学:腐蚀、膨胀的更多相关文章

  1. opencv中的图像形态学——腐蚀膨胀

    腐蚀膨胀是图像形态学比较常见的处理,腐蚀一般可以用来消除噪点,分割出独立的图像元素等. 一般腐蚀操作对二值图进行处理,腐蚀操作如下图,中心位置的像素点是否与周围领域的像素点颜色一样(即是否是白色点,即 ...

  2. OpenCV学习(10) 图像的腐蚀与膨胀(1)

    建议大家看看网络视频教程:http://www.opencvchina.com/thread-886-1-1.html    腐蚀与膨胀都是针对灰度图的形态学操作,比如下面的一副16*16的灰度图. ...

  3. OpenCV学习笔记——图像的腐蚀与膨胀

    顺便又复习了一下cvcopy如何进行图像拼接(最近觉得打开多幅图像分别看不如缩小掉放拼接到一幅图像上对比来的好) 首先把拼接的目标图像设置兴趣区域ROI,比如我有一个total,要把a.b.c分别从左 ...

  4. OpenCV学习(12) 图像的腐蚀与膨胀(3)

    通过使用不同的结构元素来进行膨胀腐蚀操作,可以检测图像中的角点,下面就一步一步看这个算法如果实现角点检测. 原图像: 首先我们创建四个结构元素 先用十字结构元素对原图像进行膨胀操作,得到下面的图像 再 ...

  5. OpenCV学习(11) 图像的腐蚀与膨胀(2)

    先对一副灰度图像进行腐蚀操作,然后在腐蚀后的图像上再进行膨胀操作,我们定义这个操作为开操作. 先对一副图像进行膨胀操作,然后在膨胀后的图像上再进行腐蚀操作,我们定义这个操作为闭操作.       开操 ...

  6. OpenCV中的图像形态学转换

    两个基本的形态学操作是腐蚀和膨胀.他们的变化构成了开运算,闭运算,梯度等.下面以这张图为例 1.腐蚀 这个操作会把前景物体的边界腐蚀掉. import cv2 import numpy as np i ...

  7. OpenCV学习笔记(9)——形态学转换

    不同的形态学操作,例如腐蚀,膨胀,开运算,闭运算等 形态学操作是根据图像形状进行的简单操作.一般情况下对二值化图像进行操作.需要的参数有两个,一个是原始图像,第二个被称为结构化元素或核,它是用来决定操 ...

  8. 机器学习进阶-图像形态学操作-膨胀操作 1.cv2.dilate(进行膨胀操作)

    1.cv2.dilate(src, kernel, iteration) 参数说明: src表示输入的图片, kernel表示方框的大小, iteration表示迭代的次数 膨胀操作原理:存在一个ke ...

  9. opencv学习笔记-图像对比度、亮度调节

    在数学中我们学过线性理论,在图像亮度和对比度调节中同样适用,看下面这个公式: 在图像像素中其中: 参数f(x)表示源图像像素. 参数g(x) 表示输出图像像素. 参数a(需要满足a>0)被称为增 ...

  10. opencv学习笔记-图像叠加、混合

    在图像处理中,目标区域定义为感兴趣区域ROI(region of Interest),这是后期图像处理的基础,在获取ROI后,进行一些列的处理.ROI区域在Opencv中就是Rect,先构建Rect, ...

随机推荐

  1. Windows计算器使用详解

    (1)Backspace:退格,删除当前输入数字中的最后一位 (2)CE:清除,清除显示的数字. (3)C:归零,清除当前的计算. (4)MC:清除存储器中的数值. (5)MR:将存于存储器中的数显示 ...

  2. 08JS高级 ——“继承”

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  3. 井字棋(Tic-Tac-Toe)

    井字棋介绍:https://en.wikipedia.org/wiki/Tic-tac-toe 井字棋简单,但是获胜策略却和直觉不同,四角比中间重要性要高,而且先手有很大的获胜概率获胜(先手胜:91, ...

  4. svn 查看某个时间段的记录

    调出svn后,点击查找历史的按钮.

  5. Mysql 常用查询语句

    SELECT * FROM table1 ,,,,,,,,) ) SELECT * FROM table3 WHERE t3Date >= '2011-08-10' SELECT * FROM ...

  6. 同步Flex Chart的数据提示

    原文 http://www.riafan.com/sync-datatips-for-flex-chart/ 图表数据提示的同步不仅包含单个图表内多个系列的数据提示的同步,也包含多个图表的数据提示的同 ...

  7. 假数据自我添加测试--NSArray object

    一.列表假数据 //在.h文件里面定义node所包含实体类---1 struct listTestNode { NSString *image; NSString *name; }; //在.m实现文 ...

  8. getopt vs getopts

    getopt示例 #!/bin/bash aflag=no args=`getopt a: $@` ]; then echo 'Usage: ...' exit fi set -- $args ] d ...

  9. C4.5较ID3的改进

    1.ID3选择最大化Information Gain的属性进行划分   C4.5选择最大化Gain Ratio的属性进行划分 规避问题:ID3偏好将数据分为很多份的属性 解决:将划分后数据集的个数考虑 ...

  10. javascript第九课"闭包"

    所谓闭包:就是一个函数内部又定义了一个函数,而这个函数能访问外部函数作用域范围内的变量,这个内部函数就叫做闭包!   js中的面向对象都是使用闭包来实现的 闭包里使用的变量会现在当前函数内搜索,没有的 ...