概率霍夫变换(probabilistic Hough transform)用于查找二值图像中的线段,python函数为cv2.HoughLinesP(),该函数实现[Matas00]中描述的用于线段检测的概率Hough变换算法,函数使用方法如下图所示:
各参数含义为:
所用测试田字格图像和这篇博文所用图像相同,如下图所示:
python代码如下:
img = cv2.imread('squares.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,200,apertureSize = 3)
minLineLength = 100
maxLineGap = 10
lines = cv2.HoughLinesP(edges,1,np.pi/180,100,minLineLength,maxLineGap)
for line in lines:
print('line:', line)
for x1,y1,x2,y2 in line :
cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2)
cv2.imwrite('houghlines5.jpg',img)
运行结果如下,可以看到,程序可以实现程序分段识别和显示的效果。