Get the Circle Centers -- Get the Circle Centers --
§ 目的
計算物件的直徑和中心點的項目
§ 過程
此範例是四個安裝孔的散熱器影像,範例中圓孔是不規則的
§ 結果
計算出各安裝孔的中心點和最大直徑
§ 提示
在影像孔具有不規則形狀,使用 "DetectMultipleCircles" filter 是發現它們的最佳方式,採用 Hough Transform. 利用 Hough Transform 尋找圓圈允許定位變形或不完整的圓
在圖像中檢測圓圈密集的計算是一個很好的做法,可減少操作的 ROI ,若定位不完整的圓圈(用較小的分數)降低了 ROI 減少誤報的結果
使用 "ThresholdToRegion_Dynamic" filter,該安裝點框架和背景之間的顏色是足夠且用不同的來區分它們
透過區域邊框和獲得它的中心點來完成區域中心計算。如果中心易受雜訊甘擾,可使用 "RegionMassCenter" filter.
§ 解決方案
1. "EnumerateFiles" filter and "LoadImage" filters 呼叫影像
2. 使用測量工具,測量單個孔的尺寸
3."DetectMultipleCircles" filter 利用測量工具來找到內切圓的半徑值
4. 發現圓圈並不包括所有孔面積的圓圈,調整其孔面積,利用 "RescaleCircle" filter 的 inScale 設 1.2.
5. 發現圓圈,用於提取孔物件剩餘部份的內部 ROI , 要建立一個 ROI ,利用 "CreateCircularRegion" filter 轉換調整大小區域。每個圓圈將建立新的區域,為使處理速度更快,應加入所有的地區為一體。 利用 "RegionUnion_OfArray" 將它們連接起來
6. 抽取孔內部最好的方法是使用 "ThresholdToRegion_Dynamic" filter,這形式的 thresholding 是用於提取具有非常不同的平均顏色的影像部份最合適
7. thresholding 後,我們得到了更小的面積(四大部件和一組區域),要分割區域為斑點而省略這此雜訊區域,利用 "SplitRegionIntoBlobs" filter 在 inMinBlobArea input 設 1500.
8. 利用 "RegionDiameter" filter 提取斑點將其覆蓋孔內部,找到它的直徑。 利用 "RegionMassCenter" filter 找到孔的中心點
§