2014-10-04 7 views
4

Я пытаюсь найти круги в образах и вернуть их к каноническому виду (т. Е. Как бы глядя в центр). Однако круги в общем проекте эллипсов при перспективных преобразованиях. Поэтому я первое обнаружение эллипсов, грубо выполнив следующие действия (в OpenCV):Как исправить обнаруженный эллипс

1. Find contours in the image 
2. Estimate area of contour 
3. Fitting a bounded box to contour and estimating area by width/2 * height/2 * PI (area of ellipse) 
4. checking if area of contour and estimated area of ellipse is < a threhsold 

Предполагая, что я нашел эллипс с помощью этого метода, как я могу исправить его обратно в круг так, что я «отменить» перспектива (хотя и не в плоскости вращения, поскольку это невозможно сделать, я думаю). Например, если бы это был прямоугольник, я бы просто вычислил гомографию из 4-х углов прямоугольника вверх по обнаруженному проецируемому.

Я понятия не имею, как это сделать с помощью эллипса, любая помощь очень ценится.

Благодаря

+0

Вы можете предположить, что прямоугольник boundin вокруг эллипса (ширина/высота - общие параметры эллипса в любом случае) и проецируйте его на квадрат?!? – Micka

+2

@ Мичка Вам нужно будет обнаружить более сложный ограничивающий четырехугольник, чем прямоугольник, поскольку квадрат не деформируется в прямоугольник при общем преобразовании перспективы. – AldurDisciple

ответ

4

Круг действительно превращается в эллипс с помощью перспективного преобразования, однако его оси не такой же, как осей исходной окружности, как показано на этом рисунке:

Ellipse vs Perspective circle http://www.brian-curtis.com/text/dfo_second_edition/PowerPoint/cirellipse%2024.png

Вы можете обратиться к this link за подробную демонстрацию. Как следствие, ограничивающий прямоугольник эллипса не является изображением начального квадрата с помощью перспективной трансформации.

EDIT:

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

enter image description here

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

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

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

+0

Могу ли я не просто найти верхнюю, нижнюю, левую и правую точки на эллипсе (заданные шириной и высотой от центра) и сопоставить их сверху, снизу, слева, справа от круга радиуса r. И найти гомографию таким образом? Конечно, это может быть неверно при вращении плоскости, но тогда можно просто повернуть деформированный эллипс на 90 градусов в плоскости – Aly

+0

@Aly См. Редактирование моего ответа. Немного больше деталей о том, что вы хотите сделать, было бы полезно найти обход. Может быть, вы можете нарисовать крест в круге, который будет обнаружен, чтобы отметить его истинный центр для более легкого обнаружения? – AldurDisciple

+0

@Aly Кроме того, в зависимости от требуемой точности достаточно было бы приблизиться к истинным осям и центру круга с осями и центром наблюдаемого эллипса. – AldurDisciple

5

Это выглядит неопределенной проблемой.

Проекция прямоугольника снабжает 8 уравнений из 8 неизвестных (коэффициенты гомографии).

С помощью эллипса вы можете получить только центральные координаты (2 DOF), ось (2 DOF) и ориентацию оси (1 DOF).

+1

Супер короткое доказательство того, что это невозможно, приятно! – AldurDisciple

 Смежные вопросы

  • Нет связанных вопросов^_^