Как найти угол между двумя перпендикулярными линиями в opencv
у меня есть две перпендикулярные линии как нарисовать угол между ними
Что я уже пробовал:
включает в себя мпорт как НП
импорт cv2
btn_down = ложь
деф get_points(им):
# Настройка данных для отправки в обработчик мыши
данные = {}
данные['чат'] = им.копия()
данные['lines'] = []
# Установите функцию обратного вызова для любого события мыши
cv2.imshow("изображение", im)
cv2.setMouseCallback("образ", mouse_handler, сведения)
cv2.waitKey(0)
# Преобразование массива в np.array в форме n,2,2
очки = НП.типа uint16(линии данных [''])
точки возврата, данные['im']
def mouse_handler(событие, x, y, флаги, данные):
мировой btn_down
если событие == cv2.EVENT_LBUTTONUP и btn_down:
#если вы отпустите кнопку, закончите строку
btn_down = ложь
data['lines'][0].append((x, y)) #добавить вторую точку
cv2.circle(data['im'], (x, y), 3, (0, 0, 255),5)
cv2.line(data['im'], data['lines'][0][0], data['lines'][0][1], (0,0,255), 2)
cv2.imshow("изображение", данные['im'])
elif event == cv2.EVENT_MOUSEMOVE и btn_down:
#это просто для визуализации ине
image = data['im'].copy()
cv2.line(изображение, данные['lines'][0][0], (x, y), (0,0,0), 1)
cv2.imshow("изображение", image)
elif event == cv2.EVENT_LBUTTONDOWN и len(data['lines']) < 10:
btn_down = истина
данные [линий].вставить(0,[(х, г)]) #добавить точку
cv2.circle(data['im'], (x, y), 3, (0, 0, 255), 5, 16)
cv2.imshow("изображение", данные['im'])
# Запуск кода
img = cv2.imread("98.jpg", 1)
ПТС final_image = get_points(рис)
cv2.imshow ("изображение", final_image)
печати (ПТС)
cv2.waitKey(0)