Когда cv.contourArea (contour, True) возвращает отрицательное значение? - PullRequest
0 голосов
/ 29 сентября 2019

В документации для cv.contourArea сказано, что если oriented равно true, возвращаемое значение будет положительным или отрицательным в зависимости от ориентации контура:

oriented: флаг ориентированной области. Если это true, функция возвращает значение области со знаком, в зависимости от ориентации контура (по часовой стрелке или против часовой стрелки). Используя эту функцию, вы можете определить ориентацию контура, взяв знак области. По умолчанию параметр равен false, что означает, что возвращается абсолютное значение.

Однако, это не говорит о том, что означает отрицательное значение - отрицательное значение по часовой стрелке или против часовой стрелки?

1 Ответ

2 голосов
/ 29 сентября 2019

Самый простой способ получить ответ на ваш вопрос - проверить это с помощью двух простых контуров треугольника, одного по часовой стрелке, одного против часовой стрелки.

import numpy as np
import cv2

cw = np.array([[0,0],[4,0],[0,4]])
ccw = np.array([[0,0],[0,4],[4,0]])

print cv2.contourArea(cw, True)
print cv2.contourArea(ccw, True)

Это распечатывает

8.0
-8.0

Следовательно, положительный результат означает по часовой стрелке, отрицательный против часовой стрелки.

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