Расчет 2D-углов для 3D-объектов в перспективе

Представьте себе фотографию с выделенным фасадом здания.

Учитывая, что фасад здания представляет собой прямоугольник с углами 90 градусов. Однако, поскольку это фотография, будет задействована перспектива, и параллельные края лица будут сходиться на горизонте.

С таким прямоугольником, как вы вычисляете угол в 2D между векторами краев грани, находящейся под прямым углом к ​​нему?

На изображении ниже синий - это лицо, отмеченное на фотографии, и мне интересно, как рассчитать 2D-вектор красных линий другого лица:

пример http://img689.imageshack.us/img689/2060/leslievillestarbuckscor.jpg

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

пример

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


person Will    schedule 26.04.2010    source источник
comment
У вас уже есть красные края?   -  person mmr    schedule 26.04.2010
comment
Зная, что синее лицо представляет собой прямоугольник, вы, вероятно, имеете достаточно информации, чтобы работать в обратном направлении от синего лица - ›синий трехмерный объект + камера -› красный трехмерный объект + камера - ›красные линии.   -  person Amber    schedule 26.04.2010


Ответы (2)



Честно говоря, я бы сделал преобразование Хафа на изображении и определил способ идентифицировать красные линии с изображения. Чтобы найти красные линии, я бы нашел любые линии в преобразовании, которые касаются ваших синих. Преимущество преобразования заключается в том, что вы получаете информацию об угле бесплатно.

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

В Matlab есть неплохой функционал для такого рода работы.

person mmr    schedule 26.04.2010
comment
Hough - это интересный подход, с которым я знаком, но я ищу математический подход, чтобы сообщить мне, каким линиям Hough следует доверять. - person Will; 26.04.2010
comment
Угловое пересечение - хороший показатель доверия? Найти углы вашей области, отмеченной синим цветом, должно быть возможно, особенно если у разметки есть четыре таких угла. Тогда линии, которые могут проходить через эту угловую точку, могут быть кандидатами и, возможно, выбрать ближайшую в качестве ответа. - person mmr; 26.04.2010
comment
Идея о том, что я могу отсеивать зашумленные точки, ища линии-кандидаты, соответствующие перспективной проекции фигуры-кандидата; это значит, что мне нужен форум для проецирования ... - person Will; 26.04.2010