今天看到群里有人在問這個問題,想了一個解決辦法。
我們首先作假設,如果一條曲線有交點,那么它就是相交的對吧。可能大家想的都是這樣,就開始找各種方法去識別交點。
我們換個角度想一下:是不是我們判斷這條曲線是否帶有封閉的區域就可以了呢?
這樣問題解決起來會很容易:
圖片里邊有一條線,我先用求取交點做了一下。
如果采用求是否存在空洞的話程序會非常簡單。
在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,則判定曲線有交點