1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【halcon】亚像素轮廓XLD

【halcon】亚像素轮廓XLD

时间:2023-08-06 12:08:20

相关推荐

【halcon】亚像素轮廓XLD

XLD(eXtended Line Descriptions):XLD其实就是指的亚像素轮廓。

如何理解亚像素

上一篇《halcon入门小技巧》提到的:

threshold (Image, Region, 128, 255) 这个呢,是给了一个灰度的范围,通过像素进行划分区域。

像素已经是图片成像的最小单位了,下图就是将一张图片放大到看到像素的程度。这每一个方块就是一个像素,每个像素都有自己的一个灰度值。两个像素之间的灰度值是跳变的

如果进一步细分,假设像素的正中间点才是该像素的值,像素其他地方的值是渐变的方式过度到另一个像素。那么像素内部除中间点之外的点的值需要参考周围像素的值。

现在又有一个函数,针对亚像素:

threshold_sub_pix (ImageReduced, Border, 128)这个函数的意思就是,按照上述的方式,推算出每个像素点中128这个灰度值应该出现在哪个位置,再将128的这个位置连线,得到一个轮廓称之为“亚像素轮廓” :

这里的参数Border就是我们说的轮廓:

类型为 xld_cont, 这种类型就是”亚像素轮廓“,是一条线(线是给你看的,其实是由一系列的点组成)可以用长度描述。

cont是contour的缩写

当我们得到了一堆的轮廓之后,我们应该如何筛选呢?

我们可以通过长度选择轮廓线,首先通过halcon软件提供的特征提取功能,得到轮廓的长度

然后调用select_contours_xld进行筛选。

select_contours_xld (Border, SelectedContours, 'contour_length', 90, 120, -0.5, 0.5)

参数解释:

Border, SelectedContours:从亚像素轮廓Border中选出符合条件的SelectedContours'contour_length':表示条件是轮廓长度90, 120:表示轮廓的长度范围-0.5, 0.5:作用目前还不清楚

此时还可以查看符合条件轮廓的个数:

count_obj (SelectedContours, Number)

通过亚像素轮廓得到区域

gen_region_contour_xld (SelectedContours, Region1, 'filled')

这里就会发现和亚像素轮廓不同,区域和图像一样是一像素为单位的。

再次通过区域得到image

reduce_domain (ImageReduced, Region1, ImageReduced1)

这里再解释一下reduce_domain,他是通过区域Region得到图片,区域可以很多个,但是得到的图片只能由一张,如果此时有多个Region,那么得到的图片是通过第一个Region生成的图片。

小结:

这里发现了一个小套路:

1、先得到亚像素轮廓

2、筛选轮廓

3、通过轮廓得到Region

4、通过Region得到图片

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。