大宇私人领地伊甸园丨宁愿做了后悔,也不要错过后悔[www.mrdayu.com]
注册

24小时联系邮箱:[email protected]

所有文章
大宇私人伊甸园: 首页 > 所有文章 > 编程人生 > 开源库 > opencv > [001.12]形态学操作

[001.12]形态学操作

发布时间:2018/07/14 opencv 标签顶帽黑帽阅读:23

形态学操作:

  • 开操作- open
  • 闭操作- close
  • 形态学梯度- Morphological Gradient
  • 顶帽 – top hat
  • 黑帽 – black hat

开操作open:

先腐蚀后膨胀

可以去掉小的对象,假设对象是前景色,背景是黑色

一般用于去噪操作,可以将小处的椒盐噪声去掉。

闭操作-close:

先膨胀后腐蚀(bin2)

可以填充小的洞(fill hole),假设对象是前景色,背景是黑色

 

 

可以将图中中心的黑点填补上

形态学梯度Morphological Gradient:

膨胀减去腐蚀

又称为基本梯度(其它还包括-内部梯度、方向梯度)

顶帽 – top hat:

顶帽 是原图像与开操作之间的差值图像

黑帽:

黑帽是闭操作图像与源图像的差值图像

实际上应该是会将之前的黑点保留下来的,我这实验有点失败。。

相关API:

morphologyEx(src, dest, int OPT, kernel);

第一个参数Mat src: 输入图像

第二个参数Mat dest:输出结果

第三个参数int OPT:形态学操作类型

  • CV_MOP_OPEN:开
  • CV_MOP_CLOSE:闭
  • CV_MOP_GRADIENT:梯度
  • CV_MOP_TOPHAT:顶帽
  • CV_MOP_BLACKHAT:黑帽

第四个参数Mat kernel:结构元素

第五个参数int Iteration:迭代次数,默认是1

演示代码:

getStructuringElement函数:

getStructuringElement函数会返回指定形状和尺寸的结构元素。
这个函数的第一个参数表示内核的形状,有三种形状可以选择。

矩形:MORPH_RECT;

交叉形:MORPH_CORSS;

椭圆形:MORPH_ELLIPSE;

第二参数:表示内核的尺寸

第三个参数:锚点的位置。

一般在调用erode以及dilate函数之前,先定义一个Mat类型的变量来获得

getStructuringElement函数的返回值。

对于锚点的位置,有默认值Point(-1,-1),表示锚点位于中心点。element形状唯一依赖锚点位置,

其他情况下,锚点只是影响了形态学运算结果的偏移。
The bottom line, for me, is simple.

Let’s hope it doesn’t take 500 years for a discipline of testing to becomes the standard for software developers.

From:dayu

您好!请登录

合作网站快捷登录:
点击取消回复

已有0评论

    大宇博客

    点击这里给我发消息点击这里给我发消息