Ваше изображение состоит из двух строк, я назову их строка a и строка b .Каждая из этих линий будет иметь и угол.Угол между этими линиями будет angle of line a - angle of line b.
Когда ваш код повторяется через hough_line_peaks
в, он фактически повторяет данные для каждой строки.У каждой линии есть расстояние и угол.
for _, a, d in zip(*hough_line_peaks(h, theta, d)):
angle.append(a)
dist.append(d)
Если в вашем изображении две линии, вы получите список углов с двумя значениями.Эти два значения будут углами линий по отношению к краю изображения.Чтобы определить угол наклона линий относительно друг друга, вычтите значения.
Вот пример изображения:
Углы линий: [1.3075343725834614, 0.48264691605429766]
.Это в радианах, поэтому они конвертируются в градусы с кодом: angle = [a*180/np.pi for a in angle]
.В градусах углы равны [74.91620111731844, 27.65363128491619]
.Это кажется довольно разумным: один чуть больше 45 градусов, а другой чуть меньше.Угол между линиями составляет max(angles) - min(angles)
или 47,262 градуса.
На этом рисунке показаны углы, нарисованные на изображении: