Machine vision Hough transform extracts straight lines
import cv2 as cv
import numpy as np
img = cv.imread('/home/local/EUROPRO/guoliang.wang/OpenCV/opencv/samples/data/building.jpg',cv.IMREAD_GRAYSCALE) # 输入图片路径
cv.imshow('sudo.pgm',img)
edges = cv.Canny(img,50,150,apertureSize = 3)
lines = cv.HoughLines(edges,1,np.pi/180,200)
for line in lines:
rho,theta = line[0]
a = np.cos(theta)
b = np.sin(theta)
x0 = a*rho
y0 = b*rho
x1 = int(x0 + 1000*(-b))
y1 = int(y0 + 1000*(a))
x2 = int(x0 - 1000*(-b))
y2 = int(y0 - 1000*(a))
cv.line(img,(x1,y1),(x2,y2),(0,0,255),2)
cv.imshow('sudu2.png',img)
cv.waitKey(0)
# cv.imwrite('houghlines3.jpg',img)