工控编程吧
标题:
halcon pouring函数介绍
[打印本页]
作者:
qq263946146
时间:
2019-5-30 13:07
标题:
halcon pouring函数介绍
pouring(Image : Regions : Mode, MinGray, MaxGray : )
pouring将输入图像视为“山脉”。较大的灰色值对应山峰,较小的灰色值对应谷底。
将输入图像分成几个步骤进行分割。
首先提取局部极大值,即,无论是单独的像素,
还是以扩展平台的形式出现的像素,其灰度值都大于相邻像素(在4个邻域内)。
在接下来的步骤中,找到的最大值是一个扩展的起点,直到到达 “valley bottoms”。
只要存在像素链,其中的灰度值变得更小(就像水从最大值向四面八方流下),就可以进行扩展。
同样,使用4邻域,但条件较弱(较小或相等)。
这意味着谷底的点可能属于一个以上的最大值。
这些区域最初没有被分配到一个区域,而是在最后一步被划分到所有竞争的部分。
分割是通过对所有相关段的均匀展开来完成的,直到所有模糊的像素被分配。
参数Mode决定了哪些步骤,有:
all
这是正常的操作方式。执行所有的分割步骤。将区域分配给maxima,并分割重叠区域。
maxima
分割只提取输入图像的局部最大值。没有提取相应的区域。
regions
分割提取输入图像的局部极大值及其对应区域,这些区域是唯一确定的。
分配给多个最大值的区域不会被分割。
为了防止算法分割出与图像其余部分不同的均匀背景,
参数MinGray和MaxGray确定了图像中作为背景的区域的灰度值阈值。
图像中灰度值小于MinGray或大于MaxGray的所有部分在提取最大值和分配区域时都被忽略。
对于完整的图像分割,应该选择MinGray = 0和MaxGray = 255。
必须观察MinGray < MaxGray。
参数:
Image 输入的图像
Regions输出的被分割的区域
Mode 分割的操作模式,有 'all', 'maxima', 'regions'
MinGray,
所有小于此阈值的灰度值都被忽略。
MaxGray
所有大于此阈值的灰度值都被忽略。
例程:
read_image(Image,'particle')
mean_image(Image,Mean,11,11)
pouring(Mean,Seg,'all',0,255)
dev_display(Mean)
dev_set_colored(12)
dev_display(Seg)
*分割图像,同时掩盖黑暗的背景
read_image(Image,'particle')
mean_image(Image,ImageMean,15,15)
pouring(Mean,Seg,'all',90,255)
dev_display(Mean)
dev_set_colored(12)
dev_display(Seg)
[halcon]1[/halcon]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4