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

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

所有文章
大宇私人伊甸园: 首页 > 所有文章 > 编程人生 > 开源库 > opencv > [001.13]形态学操作应用-提取水平与垂直线

[001.13]形态学操作应用-提取水平与垂直线

发布时间:2018/07/30 opencv 标签opencv阅读:98

形态学操作应用提取水平与垂直线

●原理方法

●实现步骤

●代码演示

原理方法

图像形态学操作时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感、另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的

形态学操作 – 膨胀腐蚀,使用不同的结构元素实现对输入图像的操作、得到想要的结果。

– 膨胀,输出的像素值是结构元素覆盖下输入图像的最大像素值

– 腐蚀,输出的像素值是结构元素覆盖下输入图像的最小像素值

二值图像与灰度图像上的膨胀操作:

二值图像与灰度图像上的腐蚀操作:

结构元素:

上述膨胀与腐蚀过程可以使用任意的结构元素

常见的形状:矩形、园、直线、磁盘形状、砖石形状等各种自定义形状。

提取步骤:

  • 输入图像彩色图像 imread
  • 转换为灰度图像 – cvtColor
  • 转换为二值图像 – adaptiveThreshold
  • 定义结构元素
  • 开操作 (腐蚀+膨胀)提取 水平与垂直线

代码实现第一步输入彩色图像 imread:

转换为灰度图像 cvtColor:

转换为二值图像 adaptiveThreshold:

adaptiveThreshold(
Mat src,             // 输入的灰度图像
Mat dest,            // 二值图像
double maxValue,     // 二值图像最大值
int adaptiveMethod   // 自适应方法,只能其中之一 – 
		     // ADAPTIVE_THRESH_MEAN_C , ADAPTIVE_THRESH_GAUSSIAN_C 
int thresholdType,   // 阈值类型
int blockSize,       // 块大小
double C             // 常量C 可以是正数,0,负数
)

转换为二值图像 adaptiveThreshold:

转换为二值图像 adaptiveThreshold:

定义结构元素:

  • 一个像素宽的水平线 –  水平长度 width/30
  • 一个像素宽的垂直线 – 垂直长度 height/30

开操作(腐蚀+膨胀)-检测:

后处理:

  • bitwise_not(Mat bin, Mat dst)像素取反操作,255 – SrcPixel
  • 模糊(blur)

代码实现:

 

 

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

您好!请登录

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

已有1评论

  • 罗拉套图网
    罗拉套图网 回复

    到你的博客走一趟,如同阳光洒在我脸上,心里暖洋洋!


    2018年08月02日03:21

大宇博客

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