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)
结果如图: