Halcon - 计算孔数

Halcon - Count number of holes

我有一个区域,在图像的 H 通道上使用阈值创建。现在我有了一个新区域,并缩小了它的域以拥有一个新图像。

在这张新图片上,我需要数一数洞。我所说的洞是指没有像素的区域。

例如,如果我有一块上面有蓝色方块的红板,select 红色,我会得到一个新图像,上面有蓝色方块所在的方孔。

我怎样才能知道那些洞的数量?

我是这样做的,但一定有更好的方法:

threshold(ImageHGreenReduced, RegionHGreenReduced, 0 ,255)
connect_and_holes(RegionHGreenReduced, NumConnected, NumberCrateWindows)

我觉得你的做法很简单。这是一个细微的变化。给定输入图像:

read_image(Image, './red_board_blue_squares.png')

access_channel(Image, ImageRed, 1)

threshold(ImageRed, ImageRedRegion, 0, 100)

connection(ImageRedRegion, ImageRedConnectedRegions)

count_obj(ImageRedConnectedRegions, NumberOfHoles)

Message := 'Found ' + NumberOfHoles$'d' + ' holes'
dev_disp_text (Message, 'window', 12, 12, \
               'black', [], [])

以下输出是使用变量“NumberOfHoles”中的孔数生成的

您可以使用以下方法提取红色区域的 'holes_num' 特征:

connect_and_holes(myRegion, numConnected, numHoles) 

作为奖励,您可以检查 numConnected 以测试分隔红色区域的孔的状况。