halcon-watersheds从图像里提取分水岭和盆地

分水岭理解:

1.分水岭介绍

传统的分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是地质学上的拓扑地貌,图像中每一像素的灰度值表示该点的海拔高度,每一个局部极小值及其周边区域称为集水盆地,而集水盆地的边界则形成分水岭。

 

 

2.相关概念

局部极小值点:该点对应一个盆地的最低点,当我们在盆地里滴一滴水的时候,由于重力作用,水最终会汇聚到该点。注意:可能存在一个最小值面,该平面内的都是最小值点。

 

3.分水岭原理

假设我们在盆地的最小值点,打一个洞,然后往盆地里面注水,并阻止两个盆地的水汇集,我们会在两个盆地的水汇集的时刻,在交接的边缘线上(也即分水岭线),建一个坝,来阻止两个盆地的水汇集成一片水域。这样图像就被分成2个像素集,一个是注水盆地像素集,一个是分水岭线像素集。

 

 

 

 

 

 

在HDevelop中

复制代码
dev_close_window ()
read_image (image, 'D:/bb/tu/8.jpg')

get_image_size (image, Width, Height)

dev_open_window (0, 0, Width, Height, 'black', WindowID)

dev_set_colored (12)

*高斯滤波
*gauss_filter (image, ImageGauss, 9)

*图像反选
*invert_image (ImageGauss, ImageInvert)

watersheds (image, Basins, Watersheds)
*从图像里提取分水岭和盆地
*第一个输入参数:输入图像
*第二个输出参数:分割后的盆地区域
*第三个输出参数:分割后的分水岭区域

dev_open_window (0, 0, Width, Height, 'black', WindowID)
dev_display (Basins)
dev_open_window (0, 100, Width, Height, 'black', WindowID1)
dev_display (Watersheds)
复制代码

 

 

 


在QtCreator中

 

 

 

 

 

posted @   天子骄龙  阅读(206)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
历史上的今天:
2019-04-04 pyqt-QObject
点击右上角即可分享
微信分享提示

目录导航