公众号:机器视觉那些事儿
“古人云,一生二,二生三,三生万物。古人有云,水之清则无敌。故名三清!”
此次选取的案例依然是官方Blob案例–基于欧式距离的分水岭算法的区域分割。Halcon的官方例程,都是顶级工程师的思想精华,大多实际项目的难度并没有官方例程复杂,由于官方例程针对的是有一定Halcon基础的,本人在此次处理时添加了详细的中文注释,做出一定的调整,更容易让读者理解和接受。
- 原理简介
第1步:
使用区域距离变换算子获取距离信息图
distance_transform(Region:DistanceImage:Metric,Foreground,Width,Height)
距离变换简化了分水岭算法的复杂度。距离变换针对二值图像,目标像素为1,背景像素为0。距离变换的结果图像是一个灰度图像,灰度值就是图像中该像素距离其最近的背景像素的距离。
假设两个像素点P1(x1,y1),P2(x2,y2)
距离D = sqrt((x1-x2)(x1-x2) + (y1-y2)(y1-y2))
第2步:
使用阈值分水岭算子获取盆地
watersheds_threshold(Image : Basins : Threshold : )
分水岭算法是一种基于拓扑理论的数学形态学