'''
实验名称：线段检测
实验平台：核桃派1B
'''

import cv2
import numpy as np

img0 = cv2.imread('lines.png') #读取图像
cv2.imshow('lines', img0) #显示原图像

#将彩色图像转化为灰度图像（单通道）
img1 = cv2.cvtColor(img0, cv2.COLOR_BGR2GRAY)
#cv2.imshow('gray', img1) #显示图像

#将灰度图像转化二值图像
t,img2 = cv2.threshold(img1, 127, 255, cv2.THRESH_BINARY_INV)
cv2.imshow('binary', img2) #显示二值图像

#检测线段
lines = cv2.HoughLinesP(img2, 1, np.pi/180, 15, 100, 20)

print(lines) #打印线段信息

#在原始图像画线段
for l in lines:    
    x0, y0, x1, y1 = l[0]
    cv2.line(img0, (x0, y0), (x1, y1), (0,255,0), 3)

cv2.imshow('result', img0)

cv2.waitKey() #等待键盘任意按键按下
cv2.destroyAllWindows() #关闭窗口
