在opencv中檢測半圓我試圖檢測圖像中的完整圓圈和半圓我遵循下面提到的過程:過程圖像(包括Canny邊緣檢測)查找輪廓并在空圖像上繪制它們,以便我可以消除不需要的組件。(處理過的圖像正是我想要的。)使用HoughCircles檢測圓圈。這就是我得到的。我嘗試改變HoughCircles中的參數,但結果不一致,因為它根據光線和圖像中圓圈的位置而變化。我根據它的大小接受或拒絕一個圓圈。所以結果是不可接受的。此外,我還有一長串“可接受的”圈子,所以我需要在HoughCircle參數中留出一些余量。至于完整的圓圈,很容易 - 我可以簡單地找到輪廓的“圓度”。問題是半圈!請在hough變換前找到編輯過的圖像
3 回答
犯罪嫌疑人X
TA貢獻2080條經驗 獲得超4個贊
我知道它有點晚了,但我使用了更簡單的方法。從cv2.HoughCircles(...)你得到圓的中心和直徑(x,y,r)。因此,我只需瀏覽圓圈的所有中心點,然后檢查它們是否遠離圖像邊緣而不是直徑。
這是我的代碼:
height, width = img.shape[:2] #test top edge up = (circles[0, :, 0] - circles[0, :, 2]) >= 0 #test left edge left = (circles[0, :, 1] - circles[0, :, 2]) >= 0 #test right edge right = (circles[0, :, 0] + circles[0, :, 2]) <= width #test bottom edge down = (circles[0, :, 1] + circles[0, :, 2]) <= height circles = circles[:, (up & down & right & left), :]
添加回答
舉報
0/150
提交
取消
