博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV学习 7:图像形态学:腐蚀、膨胀
阅读量:4931 次
发布时间:2019-06-11

本文共 1072 字,大约阅读时间需要 3 分钟。

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

首先什么是图像形态学?额,这个抄下百度到的答案。

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

腐蚀示意图如下:

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

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

另外一张原图就没放上,他们看上去一样,指示拍摄位置稍有不同,上面已经讲过了。

后面我们在diff图的基础上进行膨胀、腐蚀、开和闭运算。
运算结果如下:
从左到右从上到下依次为:  腐蚀(erode)                                     膨胀(dilate)
                                          开运算(先腐蚀再膨胀 cleandiff)        闭运算(先膨胀再腐蚀 dirtydiff)

效果已经看到了,现在可以总结下这些运算的作用了。

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

  用来填充物体内细小空洞、连接临近物体、平滑其边界的同时并不明显改变其面积。

 感觉上面的图看起来和结论比起来不是那么的明显对应啊。。因为我们不是二值图,如果用二值图的画效果就会和结论比较对应了。哈

转载于:https://www.cnblogs.com/adfjhg/p/4248586.html

你可能感兴趣的文章
画世界怎么用光影_世界绘画经典教程:水彩光影魔法教程
查看>>
matlab提取caffe模型,深度學習Caffe實戰筆記(10)Windows Caffe使用MATLAB接口提取和可視化特征...
查看>>
win+rsync+php,跨平台的fswatch+rsync同步备份
查看>>
C语言关于指针数组的总结,C语言之指针与数组总结
查看>>
vue2 cdn 加载html,vue项目中使用CDN加载
查看>>
数组转集合踩坑
查看>>
node.js的异步I/O、事件驱动、单线程
查看>>
vue cli3 子目录问题
查看>>
github.com访问慢解决
查看>>
微服务架构最强详解
查看>>
转:哈夫曼树详解
查看>>
面试问题之计算机网络:简述TCP和UDP的区别以及优缺点
查看>>
面试问题之C++语言:C与C++的区别
查看>>
.Net Core Identity外面使用Cookie中间件
查看>>
【坐在马桶上看算法】算法1:最快最简单的排序——桶排序
查看>>
C#中泛型之Dictionary
查看>>
强连通分量
查看>>
Linux 入门 bash语句 第三课
查看>>
LeetCode 27. 移除元素
查看>>
【原创】phpcms v9 0day
查看>>