今天看到群里有人在问这个问题,想了一个解决办法。
我们首先作假设,如果一条曲线有交点,那么它就是相交的对吧。可能大家想的都是这样,就开始找各种方法去识别交点。
我们换个角度想一下:是不是我们判断这条曲线是否带有封闭的区域就可以了呢?
这样问题解决起来会很容易:
图片里边有一条线,我先用求取交点做了一下。
如果采用求是否存在空洞的话程序会非常简单。
在halcon下实现:
首先选择出线条区域,可以用二值化。
threshold (Image, Region, 128, 255)
选择出区域后,可以填充一下孔洞,使用fill_up函数
fill_up (Region, RegionFillUp)
之后把没填充与填充的区域做减法
difference (RegionFillUp, Region, RegionDifference)
求取不同区域部分的面积
area_center (RegionDifference, Area, Row, Column)
如果Area大于0,则判定曲线有交点
进一步优化:
首先选择出线条区域,可以用二值化。
threshold (Image, Region, 128, 255)
直接判断是否存在孔洞
area_holes (RegionDifference, Area)
如果Area大于0,则判定曲线有交点