count - Halcon - 计算孔数
问题描述
我有一个区域,在图像的 H 通道上使用阈值创建。现在我有一个新的区域,并减少了它的域以获得一个新的图像。
在这个新图像上,我需要数孔。我所说的孔是指没有像素的区域。
例如,如果我有一个上面有蓝色方块的红色板,然后选择红色,我会得到一个新的图像,在蓝色方块所在的地方填充有方孔。
我怎样才能得到那些洞的数量?
我已经这样做了,但必须有更好的方法:
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”中的孔数产生以下输出
推荐阅读
- python - Pandas:如何仅删除列末尾的最后一个连字符
- google-forms - 如何根据其他用户过去的回复使 Google 表单自动填充?
- c - 我知道一个地址,但我应该如何判断在哪个部分?使用C的全局区域或堆区域或堆栈区域
- json - 如何解决“手势 RangeError(索引)捕获的异常:无效值:有效值范围为空:0”
- c++ - 什么会使多边形算法中的点仅在正向和反向运行时才能正常工作?
- php - PHP:如何使用键->值对每两个分隔符将一个字符串分解为一个数组
- kubernetes - 将 GKE 集群拆除为“全新”状态而不删除它?
- scala - Spark——自定义reduce函数保存到磁盘然后上传到s3
- javascript - XMLHttpRequest 返回事件对象而不是实际数据
- fortran - Fortran 将未知大小的文件读入数组