Я хочу получить список прямых линий с координатами начала и конца каждого пути.
С помощью canny и sift я получаю координаты, но без порядка это бесполезно для меня
Поэтому я решил нарисовать линии через HoughLinesP, но как я могу разделить линии и получить их координаты?
img = cv2.imread(path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
contours, hierarchy = cv2.findContours(
# gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
# gray, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
gray, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
canny = cv2.Canny(gray, 50, 200)
cv2.imshow("canny", canny)
# cv2.imwrite(path[:-4] + '.png', canny)
lines = cv2.HoughLinesP(image=canny,
rho=1,
theta=np.pi/180,
threshold=10,
lines=np.array([]),
minLineLength=50/2,
maxLineGap=260
)
a, b, c = lines.shape
for i in range(a):
cv2.line(img,
(lines[i][0][0], lines[i][0][1]),
(lines[i][0][2], lines[i][0][3]),
(0, 0, 255),
2,
cv2.LINE_AA
)
cv2.imshow('houghlines', img)