python opencv檢測直線 cv2.HoughLinesP的實現
更新時間:2021年06月18日 15:17:49 作者:-牧野-
cv2.HoughLines()函數是在二值圖像中查找直線,本文結合示例詳細的介紹了cv2.HoughLinesP的用法,感興趣的可以了解一下
cv2.HoughLines()函數是在二值圖像中查找直線,cv2.HoughLinesP()函數可以查找直線段。
cv2.HoughLinesP()函數原型:
HoughLinesP(image, rho, theta, threshold, lines=None, minLineLength=None, maxLineGap=None)
- image: 必須是二值圖像,推薦使用canny邊緣檢測的結果圖像;
- rho: 線段以像素為單位的距離精度,double類型的,推薦用1.0
- theta: 線段以弧度為單位的角度精度,推薦用numpy.pi/180
- threshod: 累加平面的閾值參數,int類型,超過設定閾值才被檢測出線段,值越大,基本上意味著檢出的線段越長,檢出的線段個數越少。根據情況推薦先用100試試
- lines:這個參數的意義未知,發(fā)現不同的lines對結果沒影響,但是不要忽略了它的存在
- minLineLength:線段以像素為單位的最小長度,根據應用場景設置
- maxLineGap:同一方向上兩條線段判定為一條線段的最大允許間隔(斷裂),超過了設定值,則把兩條線段當成一條線段,值越大,允許線段上的斷裂越大,越有可能檢出潛在的直線段
HoughLinesP()調用例子:
# coding=utf-8 import cv2 import numpy as np img = cv2.imread('02.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) gaus = cv2.GaussianBlur(gray,(3,3),0) edges = cv2.Canny(gaus, 50, 150, apertureSize=3) minLineLength = 100 maxLineGap = 10 lines = cv2.HoughLinesP(edges, 1, np.pi / 180, 100, minLineLength, maxLineGap) for x1, y1, x2, y2 in lines[0]: cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 2) cv2.imshow("houghline",img) cv2.waitKey() cv2.destroyAllWindows()
到此這篇關于python opencv檢測直線 cv2.HoughLinesP的實現的文章就介紹到這了,更多相關opencv檢測直線cv2.HoughLinesP內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python中列表添加元素的幾種方式(+、append()、extend())
本文主要介紹了python中列表添加元素的幾種方式(+、append()、extend()),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08Python實現一個簡單的畢業(yè)生信息管理系統(tǒng)的示例代碼
這篇文章主要介紹了Python實現一個簡單的畢業(yè)生信息管理系統(tǒng)的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06