Поворот прямоугольников - УГОЛ вернулся - Opencv

У меня проблемы с пониманием того, как работает OpenCV, когда дело доходит до RotatedRect.

Я выделил контур, и затем я пытаюсь наложить на него повернутый прямоугольник. Углы, которые я продолжаю получать, находятся в диапазоне только от 0 до -90. Даже если у меня есть контур, направляющий в другую сторону, перевернув его, я все равно получаю от 0 до -90 углов.

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

Как эти углы представлены в OpenCV (2.4.3)?

С уважением Wajih

2 ответа

Решение

В некоторых случаях RotatedRect угол может быть одинаковым для повернутого контура на 180 градусов. Лучший способ выяснить, происходит ли это в вашем случае, это нарисовать подходящий RotatedRect.

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

Смотрите мои ответы там: Вращения и масштабирование сопоставления с инвариантным шаблоном в OpenCV и там: найти ориентацию изображения

Вы можете вычислить моменты с cv::Moments: http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=moments

Я узнал, что угол находится между счетчиком и осью Y (из LearningOpenCV) . Вы ожидаете, что он будет от оси X?

Другие вопросы по тегам