OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
為輪廓建立邊界框和圓

上一個教程: 凸包
下一個教程: 為輪廓建立旋轉邊界框和橢圓

原始作者Ana Huamán
相容性OpenCV >= 3.0

目標

在本教程中,您將學習如何

理論

程式碼

解釋

主函式相當簡單,正如註釋中所示,我們執行以下操作:

  • 開啟影像,將其轉換為灰度並進行模糊處理以去除噪聲。
  • 建立一個標題為“Source”的視窗並在其中顯示原始檔。
  • source_window上建立一個跟蹤條,併為其分配一個回撥函式。通常,回撥函式用於響應某種訊號,在本例中是跟蹤條狀態的變化。有必要顯式一次性呼叫thresh_callback,以便“Contours”視窗與“Source”視窗同時顯示。

回撥函式完成所有有趣的工作。

  • 查詢輪廓並將其儲存到向量contourhierarchy中。
  • 對於每個找到的輪廓,我們現在以±3的精度應用多邊形近似,並宣告曲線必須是閉合的。之後,我們為每個多邊形找到一個邊界矩形並將其儲存到boundRect。最後,我們為每個多邊形找到一個最小外接圓並將其儲存到centerradius向量中。

我們找到了所有需要的東西,現在只需要繪製。

  • 建立新的Mat,由無符號8位字元填充零。它將包含我們所有的繪圖(矩形和圓)。
  • 對於每個輪廓:選擇一個隨機顏色,繪製輪廓、邊界矩形和最小外接圓。
  • 顯示結果:建立一個新視窗“Contours”並顯示我們新增到繪圖中的所有內容。

結果

就是這樣: