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
以测试分隔红色区域的孔的状况。
我有一个区域,在图像的 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
以测试分隔红色区域的孔的状况。