直線和圓檢測:
Hough變換是直線和形狀檢測背後的原理基礎,它是由Richard Duda和Peter Huart發明,他們是對PaulHough在10世紀60年代早期所做的工作的拓展:
直線檢測:
直線檢測通過HoughLines和HoughLinesP函數完成:
HoughLines函數用的是标準的Hough變換。
HoughLinesP函數使用的是機率Hough變換。
HoughLinesP稱為機率版本的Hough變換的原因是它隻通過分析點的子集并估計這些點屬于一條直線的機率,是對标準Hough變換的一個優化,執行速度回更加快:
效果

設定最小直線長度和最大線段間隙也蠻重要,設定最小會消除小于長度的線段,最大間隙,大于這個值會被視為是兩條直線
HoughLines輸入的位一個邊緣檢測後的二值化圖像:
HoughLinesP參數:
需要處理的圖像
線段的幾何表示rho和theta,一般取1和np.pi/180
門檻值。低于這個門檻值的線段回本忽略
-minLineLength和maxLineGap
圓檢測:
OpenCV的HoughCircles函數可以用來檢測圓,與使用HoughLines函數類似: