OpenCV使用霍夫變換檢測圖像中的形狀

霍夫變換是一種被廣泛使用的利用數學等式的參數形式在圖像中檢測形狀的技術。
例如直線、橢圓、圓等形狀。

霍夫變換可以檢測任何能以參數形式表示的形狀,隨着形狀的複雜(維數的增加,例如球體),計算的消耗也會增加。
我們通常考慮簡單的霍夫形狀,例如直線和圓。

霍夫直線

效果圖

效果圖

原圖

步驟

  1. 將圖像置灰
  2. 調用Imgproc.HoughLinesP(cannyEdges, lines, 1, Math.PI / 180, 50, 20, 20) 方法獲取直線的數據

    • 第一個參數:圖像輸入
    • 第二個參數:圖像輸出
    • 第三個參數:圖像指定像素中r的解析度
    • 第四個參數:圖像指定像素中θ的解析度
    • 第五個參數:直線上點數的閾值
    • 第六個參數:直線上點數的最小值
  3. 在圖像上繪製直線

封裝

OpenCV使用霍夫變換檢測圖像中的形狀

使用

OpenCV使用霍夫變換檢測圖像中的形狀

霍夫圓

效果圖

效果圖

原圖

步驟

霍夫圓與霍夫直線類似,只是等式改變了,調用

Imgproc.HoughCircles(cannyEdges, circles, Imgproc.CV_HOUGH_GRADIENT, 1, cannyEdges.rows() / 15);

獲取圓的數據

封裝

OpenCV使用霍夫變換檢測圖像中的形狀

使用

OpenCV使用霍夫變換檢測圖像中的形狀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章