Как найти длину двух точек на одном изображении - PullRequest
0 голосов
/ 09 июля 2019

Я просто хотел найти длину между двумя точками на одном и том же изображении, используя open cv.Может ли кто-нибудь помочь мне пройти через это?

Что я сделал до сих пор: Получил контур изображения, используя этот пример кода.

for cnt in contours:
    epsilon = 0.01* cv2.arcLength(cnt,True)
    approx = cv2.approxPolyDP(cnt,epsilon,True)
    img = cv2.drawContours(img, [approx], 0, (0,255,0), 3)

Измерение, которое мне точно нужно - Длинаразмера плеча, который я нарисовал, используя красную прямую линию в красном цвете.Есть ли способ обнаружить эти две точки и определить длину плеч.

Ожидается: найти длину КРАСНОЙ линии

enter image description here

1 Ответ

0 голосов
/ 09 июля 2019

Учитывая 2 точки в 2D-изображении A и B с координатами пикселей (xA, yA) и (xB, yB) соответственно (x для номера столбца, y для номера строки).

Расстояние между ними получается:

formula distance 2 points

Вот документация для окПолиДП: https://docs.opencv.org/4.1.0/d3/dc0/group__imgproc__shape.html#ga0012a5fdaea70b8a9970165d98722b4c

Из документов вы можете заметить, что выходные данные этой функции представляют собой массив точек (в порядке их подключения).

Если вы все еще не нашли, какие точки вашего контура являются плечами, вы можете просто найти самые высокие точки и использовать порог (верх головы), а затем отскочить еще на 2 точки. Вы можете легко найти более надежный метод.

...