OpenCV: определить, является ли область прямой или изогнутой - PullRequest
1 голос
/ 27 апреля 2020

Я играю с OpenCV, чтобы обнаружить желтую линию на изображениях c. Я могу найти (в основном) найти нужную область с помощью маски hsv:

lower = np.array([20,100,100])
upper = np.array([30,255,255])
mask = cv2.inRange(hsv_img, lower, upper) 

result = cv2.bitwise_and(image, image, mask = mask)

Результат маскировки (в оттенках серого):

https://i.stack.imgur.com/bIrTc.png

https://i.stack.imgur.com/fy0M3.png

Я хочу проверить, является ли маска прямой или изогнутой линией.

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

Каков наилучший способ проверить, является ли область изогнутой или прямой?

Редактировать 1:

Дорога не обязательно в том же направлении. Он также может быть прямым или даже указывать противоположное направление.

1 Ответ

1 голос
/ 28 апреля 2020

Вы можете найти разницу (поразрядное XOR) между этим двоичным изображением и выпуклой оболочкой из этого двоичного изображения. Это будет индикатор кривизны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...