python線檢測使用的時cv.HoughLinesP()函數:
它有兩個參數:
minLineLength-線的最短長度,比這個線短的都會被忽略。
MaxLineGap-兩條線之間的最大間隔,如果小於此值,這兩條線就會被看成一條線。
這個函數的返回值就是直線的起點和終點。
看主程序:
import cv2
import numpy as np
from matplotlib import pyplot as plt
img=cv2.imread('Biaoding.jpg')
#imgblur=cv2.medianBlur(img,5)
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges=cv2.Canny(gray,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("edge",edges)
cv2.imshow("image",img)
cv2.waitKey(0)