Перспективная проекция. Центральные (перспективные) проекции

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

Рис. 3-31 Трехточечная перспектива, (а) Исходный куб; (b) перспективная проекция на плоскость ; (с) искаженный куб.

Для начала рассмотрим простой перенос объекта с последующим одноточечным проецированием на плоскость и с центром проекции в точке . Требуемое преобразование записывается в виде

, (3-59)

Рис. 3-32 Одноточечная перспективная проекция с переносом в , направлениях.

Уравнение (3-59) вместе с рис. 3-32 показывает, что перенос в направлениях и открывает дополнительные грани объекта. Перенос в обоих этих направлениях необходим, чтобы открыть три грани простого кубообразного объекта. На рис. 3-32 показаны результаты переноса вдоль прямой отцентрированного относительно начала координат куба и одноточечного проецирования на плоскость . Заметим, что для передней грани показываются истинные размер и форма.

Уравнение (3-59) также показывает, что перенос вдоль оси , т.е. к центру проекции или от него, приводит к явному изменению масштаба (из-за элемента ). Этот эффект соответствует физической реальности, так как объекты, находящиеся дальше от наблюдателя, выглядят более мелкими. Заметим, что при приближении центра проекции к бесконечности явление масштабирования исчезает. Этот эффект схематично показан на рис. 3-33. Как изображено на этом рисунке, объект может находиться с любой стороны от центра проекции. Если объект и плоскость проекции находятся по одну сторону от центра, то, как показано на рис. 3-33, получается прямое изображение. Если же объект и плоскость проекции лежат по разные стороны от центра, то получается перевернутое изображение.

Рис. 3-33 Эффект масштабирования при перемещениях вдоль оси для одноточечной перспективной проекции.

На рис. 3-34 показаны результаты перемещения объекта во всех трех направлениях. Здесь куб перемещается вдоль трехмерной прямой от к . Заметно очевидное увеличение размера, а также на всех видах заметно сохранение истинной формы, но не размера передней грани.

Эти идеи более подробно изложены в примере.

Пример 3-22 Одноточечная перспективная проекция с переносом

Рассмотрим отцентрированный относительно начала координат единичный куб со следующими координатными векторами

.

Переместим куб на 5 единиц в направлениях и и построим перспективную проекцию на плоскость с центром проекции в .

Из уравнения (3-59) получаем общую матрицу преобразования

.

Рис. 3-34 Одноточечная перспективная проекция, объединенная с переносами в , , направлениях.

Преобразованные координаты

.

Правый верхний объект на рис. 3-32 изображает этот результат.

Если исходный объект был перемещен на 5 единиц в направлениях , , и была построена одноточечная перспективная проекция на плоскость с центром проекции в , тогда из (3-59) следует, что общая матрица преобразования записывается в виде

.

Отметим общее масштабирование, задаваемое значением 0.75 в правом нижнем элементе матрицы преобразования.

Преобразованные координаты равны

.

Результат показан в виде верхнего правого объекта на рис. 3-34.

Несколько граней также будет видно, если использовать вращение объекта. Один поворот откроет по крайней мере две грани объекта, тогда как два и более поворотов вокруг разных осей откроют, как минимум, три грани.

Матрица преобразования для поворота вокруг оси на угол и последующего одноточечного перспективного проецирования на плоскость с центром проекции в :

. (3-60)

Аналогичным образом матрица преобразования для поворота вокруг оси на угол и последующего одноточечного перспективного проецирования на плоскость с центром проекции в точке имеет вид:

. (3-61)

В обоих уравнениях (3-60) и (3-61) не равны нулю два отвечающих за перспективное преобразование (перспективных) элемента в четвертом столбце матрицы преобразования. Таким образом, один поворот вокруг главной оси, перпендикулярной той оси, на которой лежит центр проекции, эквивалентен двуточечному перспективному преобразованию. При повороте вокруг оси, на которой лежит центр проекции, такого эффекта нет. Заметим, что для одного поворота перспективный элемент для оси вращения остается неизменным, например, в уравнениях (3-60) и (3-61) элементы и соответственно равны нулю.

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

Пример 3-23 Двуточечное перспективное проецирование с использованием поворота вокруг одной главной оси

Рассмотрим проекцию на плоскость с центром в точке куба с рис. 3-35а, повернутого вокруг оси на угол , чтобы открылась левая грань, и перемещенного на единицы вдоль , чтобы открылась верхняя грань.

Используя уравнение (3-38) с , уравнение (3-47) с и уравнение (3-14) с , получим

.

Преобразованные координаты равны

.

Результат показан на рис. 3-35b. Искажение появляется из-за того, что центр проекции расположен слишком близко к кубу. Отметим схождение параллельных осям и прямых линий к точкам схода, лежащим на оси . Эти точки схода определяются в примере 3-25 из разд. 3-17.

Рис. 3-35 Двуточечная перспективная проекция с поворотом вокруг одной оси.

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

.

Результат изображен на рис. 3-36.

Рис. 3-36 Трехточечная перспективная проекция с поворотом вокруг двух осей.

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

В настоящее время наиболее распространены устройства отображения, кото­рые синтезируют изображения на плоскости - экране дисплея или бумаге. Устройства, которые создают истинно объемные изображения, пока доста­точно редки. Но все чаще появляются сведения о таких разработках, напри­мер, об объемных дисплеях или даже о трехмерных принтерах .

При использовании любых графических устройств обычно используют про­екции. Проекция задает способ отображения объектов на графическом уст­ройстве. Мы будем рассматривать только проекции на плоскость.

Мировые и экранные координаты

При отображении пространственных объектов на экране или на листе бумаги с помощью принтера необходимо знать координаты объектов. Мы рассмот­рим две системы координат. Первая - мировые координаты, которые опи­сывают истинное положение объектов в пространстве с заданной точностью. Другая - система координат устройства изображения, в котором осуществ­ляется вывод изображения объектов в заданной проекции.

Пусть мировые координаты будут трехмерными декартовыми координатами. Где должен размещаться центр координат, и какими будут единицы измерения вдоль каждой оси, пока для нас не очень важно. Важно то, что для изображения мы будем знать какие-то числовые значения координат отображаемых объектов.

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

Основные типы проекций

В компьютерной графике наиболее распространены параллельная и цент­ральная проекции (рис. 2.15).

Для центральной проекции (также называемой перспективной) лучи проеци­рования исходят из одной точки, размещенной на конечном расстоянии от объектов и плоскости проецирования. Для параллельной проекции лучи про­ецирования параллельны.

Аксонометрическая проекция

Аксонометрическая проекция - разновидность параллельной проекции. Для нее все лучи проецирования располагаются под прямым углом к плоскости проецирования (рис. 2.16).

[Зададим положения плоскости проецирования с помощью двух углов - α и β, Расположим камеру так, чтобы проекция оси z на плоскости проецирова|ния Х0Y была бы вертикальной линией (параллельной оси ОУ).

Рис. 2.16. Аксонометрическая проекция

Для того чтобы найти соотношения между координатами (х, у, z ) и (X , Y , Z ) для любой точки в трехмерном пространстве, рассмотрим преобразования системы координат (х , у, z ) в систему (X , Y , Z). Зададим такое преобразование двумя шагами.

1-й шаг. Поворот системы координат относительно оси z на угол α. Такой поворот осей описывается матрицей

2-й шаг. Поворачиваем систему координат (x , у", z ") относительно оси х" на угол β - получаем координаты (X , Y , Z ). Матрица поворота

Преобразования координат выражаем произведением матриц В * А:

Запишем
преобразование для координат проекции в виде формул:

Как вы считаете, будет ли получена та же проекция, если описывать преобра­зования координат теми же двумя шагами, но в другой последовательности - сначала поворот системы координат относительно оси х на угол β, а потом поворот системы координат относительно оси z " на угол α? И будут ли вер­тикальные линии в системе координат (x , y , z ) рисоваться также вертикалями в системе координат (X , У, Z)? Иначе говоря, выполняется ли А*В - В*А? Обратное преобразование координат аксонометрической проекции. Для того, чтобы координаты проекции (X , Y , Z ) преобразовать в мировые коорди­наты (х, у, z ), нужно проделать обратную последовательность поворотов. Вначале выполнить поворот на угол -β а затем - поворот на угол - α. Запи­шем обратное преобразование в матричном виде

Матрицы поворотов:

Перемножив матрицы А -1 и В -1 , получим матрицу обратного преобразования:

Запишем обратное преобразование также и в виде формул

Перспективная проекция

Перспективную проекцию (рис. 2.17) сначала рассмотрим при вертикальном расположении камеры, когда а=β = 0. Такую проекцию можно себе пред­ставить как изображение на стекле, через которое смотрит наблюдатель, рас­положенный сверху в точке (х, у, z ) = (0, 0, z k). Здесь плоскость проецирова­ния параллельна плоскости (хОу).

Исходя из подобия треугольников, запишем такие пропорции:

Учитывая также координату Z:

В матричной форме преобразования координат можно записать так:

Рис. 2.17. Перспективная проекция

Обратите внимание на то, что здесь коэффициенты матрицы зависят от коор­динаты z (в знаменателе дробей). Это означает, что преобразование коор­динат является нелинейным (а точнее, дробно-линейным), оно относится к классу проективных преобразований.

Теперь рассмотрим общий случай - для произвольных углов наклона каме­ры и р) так же, как и для параллельной аксонометрической проекции. Пусть (х", у", z 1 ) - координаты для системы координат, повернутой относи­тельно начальной системы (х, у, z ) на углы α и β.

Запишем преобразования координат перспективной проекции в виде:

Последовательность преобразования координат можно описать так:

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

Для такой перспективной проекции плоскость проецирования перпендику­лярна лучу, исходящему из центра (х, у, z )= (0, 0, 0) и наклоненному под углом α, β. Если камеру отдалять от центра координат, то центральная проек­ция видоизменяется. Когда камера в бесконечности, центральная проекция вырождается в параллельную проекцию.

Укажем основные свойства перспективного преобразования. В центральной

проекции:

□ не сохраняется отношение длин и площадей;

□ прямые линии изображаются прямыми линиями;

□ параллельные прямые изображаются сходящимися в одной точке.

Последнее свойство широко используется в начертательной геометрии для ручного рисования на бумаге. Проиллюстрируем это на примере каркаса до­мика (рис. 2.18).

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

Рассмотрим косоугольную проекцию, для которой лучи проецирования не перпендикулярны плоскости проецирования. Основная идея такой проекции - камера поднята на высоту h с сохранением вертикального положения плоскости проектирования (рис. 2.19).

Рис. 2.18. Параллельные линии изображаются в центральной проекции сходящимися в одной точке

Рис. 2.19. Косоугольная проекция

Получить такую проекцию можно следующим способом:

1. Выполняем поворот вокруг оси z на угол а.

2. Заменяем z " на -у", а.у" на z".

3. Выполняем сдвиг системы координат вверх на высоту камеры h

4. В плоскости (х", у", 0) строим перспективную проекцию уже рассмотрен­ным выше способом (точка схода лучей на оси z ).

Преобразование координат может быть описано таким образом. Сначала оп­ределяются (x", у", z ).

А потом выполняется перспективное преобразование

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

Примеры изображений в различных проекциях. Приведем примеры изо­бражений одинаковых объектов в различных проекциях. В качестве объектов будут кубы одинакового размера. Положение камеры определим углами на­клона α = 27°, β = 70°.

Пример аксонометрической проекции приведен на рис. 2.20.

Рис. 2.20. Аксонометрическая проекция

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

В оптических системах известно понятие фокусного расстояния. Чем больше фокусное расстояние объектива, тем меньше восприятие перспективы (рис. 2.21" и наоборот, для короткофокусных объективов перспектива наибольший (рис. 2.22). Данный эффект вы, наверное, уже замечали, если занимались съемками видеокамерой или фотоаппаратом. В наших примерах можно наблюдать некоторое соответствие величины расстояния от камеры до плоскости проецирования { z k z пл ) и фокусного расстояния объектива. Это соответствие, однако, условно, аналогия с оптическими системами здесь неполная.

Для приведенных Ниже примеров (рис. 2.21, 2.22) z пл = 700. Углы наклона камеры α = 27°, β = 70°.

Рис. 2.21. Перспективная проекция для длиннофокусной камеры ( z K = 2000)

Рис. 2.22. Перспективная проекция для короткофокусной камеры ( z K = 1200)

В случае короткофокусной камеры (z K = 1200) восприятие перспективы наиболее заметно для кубов, которые расположены ближе всего к камере. Вертикальные линии объектов не являются вертикалями на проекции (объекты разваливаются").

Усмотрим примеры косоугольной проекции (рис. 2.23, 2.24). Для нее вер­тикальные линии объектов сохраняют вертикальное расположение на проекции. Положение камеры (точки схождения лучей проецирования) описывается углом поворота α = 27° и высотой подъема h = 500. Плоскость проециро­вания параллельна плоскости (х"Оу") и располагается на расстоянии z пл = 700.

Рис. 2.23. Косоугольная перспективная проекция для длиннофокусной камеры ( z K = 2000)

Рис. 2.24. Косоугольная перспективная проекция для короткофокусной камеры ( z K = 1200)

Рассмотрим еще один пример изображения в центральной проекции - тега в стиле фильма "Звездные войны":

Отображение в окне

Как мы уже рассмотрели выше, отображение на плоскость проецирования соответствует некоторому преобразованию координат. Это преобразование координат различно для разных типов проекции, но, так или иначе, осущест­вляется переход к новой системе координат - координатам проецирования. Координаты проецирования могут быть использованы для формирования изображения с помощью устройства графического вывода. Однако при этом могут понадобиться дополнительные преобразования, поскольку система ко­ординат в плоскости проецирования может не совпадать с системой коорди­нат устройства отображения. Например, должны отображаться объекты, из­меряемые в километрах, а в растровом дисплее единицей измерения является пиксел. Как выразить километры в пикселах?

Кроме того, вы, наверное, видели, что на экране компьютера можно показы­вать увеличенное, уменьшенное изображение объектов, а также их переме­щать. Как это делается?

Введем обозначения. Пусть (Хэ, Уэ, Z э) - это экранные координаты объектов в графическом устройстве отображения. Заметим, что не следует восприни­мать слово "экранные" так, будто речь идет только о дисплеях - все ниже­следующее можно отнести и к любым другим устройствам, использующим декартову систему координат. Координаты проецирования обозначим здесь как (X, Y, Z).

Назовем окном прямоугольную область вывода с экранными координатами

X э min Уэтп) - (Хэтах Уэтах)- Обычно Приходится Отображать В Окно ИЛИ ВСЮ

сцену, или отдельную ее часть (рис. 2.25).

Рис. 2.25. Отображение проекции сцены

а - границы сцены в координатах проекции; б - в окне часть сцены, в - вся сцена с сохранением пропорций вписана в окно

Преобразование координат проекции в экранные координаты можно задать как растяжение/сжатие и сдвиг:

Х Э = КХ + dx , ; Y Э = KY + dy ; Z э = KZ .

Такое преобразование сохраняет пропорции объектов благодаря одинаково­му коэффициенту растяжения/сжатия (К) для всех координат. Заметим, что для плоского отображения можно отбросить координату Z. Рассмотрим, как можно вычислить К, dx и dy . Например, необходимо впи­сать все изображение сцены в окно заданных размеров. Условие вписывания можно определить так:

Если прибавить (1) к (3), то получим:

Из неравенств (2) и (4) следует:

Решением системы (1)-(4) для K будет: К min {Кх, Ку} = К min .

Если значение К х или значение K Y равно бесконечности, то его необходим отбросить. Если оба - то значение К min можно задать равным единице. Дга| того чтобы изображение в окне имело наибольший размер, выберем К = К min Теперь можно найти dx . Из неравенства (1):

Из неравенства (3): I

Поскольку dx 1 < dx 2, то величину dx можно выбрать из интервала I dx 1 dx dx 2. Выберем центральное расположение в окне: I

Аналогично найдем dy:

При таких значениях dx и dy центр сцены будет в центре окна.

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

графических системах используются разнообразные способы задания масйаба отображения и определения границ сцены для показа в окне просмотра. Например, для сдвига часто используют ползунки скроллинга. Также "южно указывать курсором точку на сцене, и затем эта точка становится центральной точкой окна. Или можно очертить прямоугольник, выделяя грани­цы фрагмента сцены, - тогда этот фрагмент затем будет вписан в окно. Й так далее. Все эти способы отображения основываются на растяжении и сжатии (масштабировании), а также сдвиге, и описываются аффинным преобразованием координат.

Перспективные проекции

Плоская перспективная проекция однозначно определяется положением точки наблюдения и расстояние от нее до плоскости проецирования (d ). Положение точки наблюдения может задаваться в виде вектора V , связывающего точку наблюдения и начало трех мерной системы координат, из которой выполняется проецирование. Трехмерная система координат, из которой выполняется проецирование, называется мировой системой координат.

Вектор V может задаваться в одной из двух форм (Рис. 6.2‑1):

1)в полярной системе координат через параметрами:

R- модуль вектораV ;

Q -угол между координатной осью X и проекцией вектора V на координатную плоскость XY мировой системы координат;

J -угол между вектором V и осью Z мировой системы координат;

2)в декартовой системе координат через проекции вектора V на координатные оси мировой системы координат:

V x – проекция вектора V на ось X ;

V y – проекция вектора V на ось X ;

V z – проекция вектора V на ось X .


Рис. 6.2 1

Задача проецирования графического объекта, в конечном счете, сводится к определению координат X ,Y отдельных точек объекта на плоскости проецирования, которые изначально заданны тремя координатами в мировой системе координат.

Определение координат точки на плоскости проекции

Разобьем общую задачу перспективногопроецирования на две задачи преобразования координат:

Преобразование для перехода из мировой системы координат в видовую систему координат

Преобразования для перехода из видовой системы координат в координаты на плоскости проекции.

Переход в видовую систему координат

Переход в видовую систему координат иллюстрируется ниже приведенным рисунком (Рис. 6.2‑2).

Видовая система координат представляет собой такую трехмерную систему координат с координатными осями X в , Y в , Z в , которая «удобна» для заданной проекции, т.е. из которой наиболее просто осуществляется переход в двумерную систему на плоскости проекции (например, экран). Для данного вида перспективной проекции начало видовой системы координат должно находиться в точке E , ее ось Z в должна совпадать с вектором проекции V , ее ось X в должна проецироваться на ось X э , а ее ось Y в должна проецироваться на ось Y э .



Рис. 6.2 2

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

1)перенос мировой системы координат на вектор V , в результате чего будет получена система координат c началом в точке E и координатными осями X 1 , Y 1 , Z 1 (реализуется матрицей Т -1 (-V x , -V y , -V z ));

2)поворот полученной системы на угол (-(90 0 -q) )относительно ее координатной оси Z 1 , в результате чего будет получена система с координатными осями X 2 , Y 2 , Z 2 (реализуется матрицей R z -1 (-(90 0 -q)) , в которой вектор V находится в координатной полскости Y 2 , Z 2 ;

3)поворот полученной системы E , X 1 , Y 1 , Z 1 на угол ((180 0 - j)) относительно ее координатной оси X 2 , в результате чего будет получена система с координатными осями X 3 , Y 3 , Z 3 , начало которой находится в точке E , (реализуется матрицей R x -1 (180 0 - j)) , в которой вектор V располагается на оси Z 3 ;

4)смена направления координатной оси X 3 , в результате чего будет получена нужная видовая система координат с координатными осями X в , Y в , Z в (реализуется матрицей R (-x )).

Таким образом, учитывая четыре базовых преобразования координат, для перехода в видовую систему координат необходимо использовать следующее произведение матриц:

Для задания используемых матриц представим все их элементы через тригонометрические функцииsin j , cos j , sin q , cos q и введем обозначения:

cos j= a ; sin j = b ; cos q = с; sin q = d ;

u x = -r bc ; u y = -r bd ; u z =-r a .

С этой целью представим перечисленные в выше приведенном выражении матрицы в следующем виде.

Матрица переноса :

T -1 (u x , u y , u z )= T (-u x , -u y , -u z ).

Такой представление правомерно, так как обратная матрица переноса на вектор эквивалентна прямой матрицы переноса на этот же вектор в обратной направленности.

C учетом введенных обозначений будем иметь:

Матрицы поворота относительно оси Z 1:

R z -1 (-(90 0 -Q))= R z (90 0 -Q),

и, учитывая, что sin (90 0 -a)= cos a, можно записать:


Матрицы поворота относительно координатной оси X 2:

R x -1 ((180 0 -j))= R x (-(180 0 -j)) ,

и, учитывая, что sin (-(180 0 -j)) =- sin j, cos (-(180 0 -j)) =- cos j, имеем:

Матрица смены направления координатной оси X 2 имет вид:

Найдем матрицу видового преобразования R в:

Определим порядок умножения матриц согласно скобок в записи:

Найдем R1:


Найдем произведение:


При нахождении матрицы видового преобразования R в, учтем необходимость расширения матрицы R 2 из размерности 3*3 до размерности 4*4:


Таким образом, матрица видового преобразования имеет вид:

(6.2-1)

Переход из видовой системы к координатам на плоскости проекции.

Для выполнения этого этапа используем ниже приведенный рисунок (Рис. 6.2‑3).


На рисунке приняты следующие обозначения:

Е – начало видовой системы координат с координатными осями X в , Y в , Z в ;

Т1 – точка в видовой системе координат, расположенная на координатной плоскости X в Z в ;

Т2– точка в видовой системе координат, расположенная на координатной плоскости Y в Z в ;

D - расстояние от начала видовой системы координат до плоскости проекции;

X э , Y э - оси системы координат на плоскости проекции (на экране).

Из приведенного рисунка видно, что:

Отсюда вытекает следующая зависимость координат точки на экране от координат этой точки в видовой системе координат:

(6.2-2)

Таким образом, используя матрицу видового преобразования R в , определяемую выражением (6.2-1), и соотношения согласно выражениям (6.2-2), можно рассчитать координаты заданных точек на плоскости перспективной проекции.

Точки и линии схода

При перспективной проекции точка схода прямой АА’ назыавется та точка на плоскости проекции, к которой стремится проекция точки, «убегающей» в бесконечность по прямой АА’. Для того, чтобы представить геометрический смысл точек схода, рассмотрим ниже приведенный рисунок (Рис. 6.2‑4).

На рисунке используются следующие обозначения:

Е - начало видовой системы координат;

«пп» - плоскость проекции (экран) с координатными осями X и Y .



Рис. 6.2 4

Проведем через точку Е прямую Еа’, перпендикулярную плоскости проекции. Эта линия пересекается с плоскостью проекции в точке а п , которая будет являться точкой проекции всех точек прямой Еа’, в том числе и точки, убегающей по этой прямой в бесконечность. Следовательно, точка а п является точкой схода для линии Еа’.

Возьмем на плоскости проекции некоторую точку b п и проведем через нее линию b п b ’, параллельную линии Еа’. Проведем через линии Еa ’ и b п b ’ плоскость, которая пересечется с плоскостью проекции по линии b п a п . Возьмем на линии b п b ‘ точку b б и устремим ее по прямой в бесконечность.

По мере перемещения бегущей точки по прямой в бесконечность, ее проекцияb бп будет перемещаться по прямой b п a п , стремясь к точке a п по мере стремления точки b п в бесконечность. Таким образом, точка a п будет являться точкой схода для прямой b п b ‘.

Единственным условием для выбора прямой bb ’ являлось то, что она параллельна прямой Еa ’. Следовательно, для всех прямых, параллельных Еa ’, точкой схода будет являться одна и та же точка a п .

Проведем в плоскости проекции через точку a п прямую, параллельную оси X плоскости проекции и возьмем на ней произвольную точку d п . Проведем прямую через точки E и d п . Затем возьмем на плоскости проекции еще одну произвольную точкуc п и проведем через нее в видовой системе координат прямуюc п c , параллельную прямой Ed п .

Через полученные параллельные прямые проведем плоскость, которая пересечет плоскость проекции по прямой d п с п . Возьмем на прямой с п с точку c б и устремим ее в бесконечность. Как видно из рисунка, по мере перемещения точки c б. в бесконечность, ее проекция будет перемещаться по прямой c п d п. , стремясь к точке d п . Отсюда следует, что точка d п является точкой схода для прямой с п с.

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

Из изложенного следует, что прямая d п а п является линией схода для всех горизонтальных плоскостей. Эта прямая называется линией горизонта.

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

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

Понятие точек и линий схода, используется при построении проекций трехмерных объектов. Рассмотрим это на конкретном примере.

Пусть необходимо построить проекцию параллелепипеда, с вертикальными боковыми гранями, имеющий верхнюю грань, заданную опорными точками 1, 2,3, 4, и нижнюю, заданную узловыми точками 5, 6, 7, 8 (Рис. 6.2‑5).

Отметим, что из свойства заданного объекта ребра, заданные узловымии точками 1,2; 3,4; 5,6; 7,8, параллельные, а, следовательно, несущие их прямые сходятся в одной точке (точка Тс1). Прямые, несущие боковые ребра 3,7; 4,8; 2,6 и 1,5, так же имеют одну и ту же точку схода (точка Т3). То же самое можно сказать о ребрах 1,3; 2,4; 5,7; 6,8 – несущие их прямые параллельны друг другу, а следовательно, имеют единую точку схода (точка Тс2).

Для однозначного построения проекции заданного объекта достаточно на проекции определить три выше упомянутые точки схода (Т3, Тс1, Тс2), и проекции точек 2,5,6,8 (Рис. 6.2‑6).


Рис. 6.2 5

Построение проекции можно вести в следующей последовательности.

Через точки 5 и Тс2 проведем прямую линию, несущую ребра 5,7. Ее пересечение с линией, проходящей через точки Тс1 и 8 (прямой линии,



Рис. 6.2 6

несущей ребро 7,8), является точкой 7. Несущие для боковых ребер 3,7; 4,8; 2,6 и 1,5 будут получены, если провести прямые через точку зенита Т3 и уже имеющиеся четыре узловые точки нижней грани параллепипеда (линии Т3,6; Т3,7; Т3,8; Т3,5).

Затем проведем прямые Тс1,2. Точка ее пересечения с прямой Т3,5 будет являться точка 1. Проведем линии Тс1,4. Точка ее пересечения с прямой T 3,7 будет являться точка 3.

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

Для того, чтобы при проецировании был получен образ объекта, близкий к тому, каким он субъективно воспринимается человеком, необходимо ограничивать угол проецирования (угол обзора наблюдателем трех мерного объекта из точки наблюдения, т.е. из точки начала видовой системы координат). Как правило, приемлемый результат проецирования получается, когда угол проецирования не превышает 30-40 градусов.

Рассмотренный метод проецирования приемлем лишь для сравнительно простых объектов.

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

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

Перспективная проекция

Модель перспективной проекции соответствует идеальной камере-обскуре. Эта модель довольно точно соответствует процессу построения изображения в большинстве современных фото- и видеокамер. Однако из-за ограничений современной оптики реальный процесс несколько отличается от модели камеры-обскуры. Отличия реального процесса от модели называются искажениями и моделируются отдельно.

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

Простейшая модель перспективной проекции

Рассмотрим простейший случай, когда центр проекции камеры (фокус) помещен в начало системы координат, и плоскость изображения совпадает с плоскостью Z=1. Пусть (X,Y,Z) - координаты точки в 3-х мерном пространстве, а (x,y) - проекция этой точки на изображение I. Перспективная проекция в этом случае описывается следующими уравнениями:

В матричной форме с использованием однородных координат эти уравнения переписываются в следующем виде:

(2.2)

Плоскость, расположенная на расстоянии 1 от центра проекции, и перпендикулярная оптической оси называется идеальной плоскостью изображения. Оптическая ось пересекает идеальную плоскость изображения в точке с, называемой принципиальной точкой. Иллюстрация простейшего случая перспективной проекции приведена на рис. 1.

Внутренняя калибровка камеры

Простейший случай перспективной проекции практически всегда не соответствует реальной камере. Расстояние от центра проекции до плоскости изображения, т.е. фокусное расстояние, обозначаемое f, обычно не равно 1. Также координаты точки в плоскости изображения могут не совпадать с абсолютными координатами. При использовании цифровой камеры, соотношение между координатами точки в изображении и абсолютными координатами точки на идеальной плоскости, определяется формой и размерами пикселов матрицы.

Обозначим размеры пиксела матрицы цифровой камеры за p x , p y , угол наклона пиксела за α, а принципиальную точку за , рис.2. Тогда координаты точки (x,y) в изображении, соответствующей точке (x R , y R) на идеальной плоскости, определяются выражением:

(2.3)

Если за f x ,f y обозначить фокусное расстояние f, измеренное в ширинах и высотах пикселей, а tan(α)*f/p y обозначить как s, то формула 2.3 преобразуется в:

(2.4)

Матрица K называется матрицей внутренней калибровки камеры. В большинстве случаев у реальных цифровых камер угол наклона пикселей близок к прямому, т.е. параметр s=0, а ширина и высота пикселя равны. Принципиальная точка обычно располагается в центре изображения. Поэтому матрица K может быть записана в виде:

(2.5)

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

Внешняя калибровка камеры

Пусть M - точка сцены в 3-х мерном пространстве. Любое движение является евклидовым преобразованием пространства, поэтому в однородных координатах оно выражается как:

(2.6)

где R - матрица вращения, T= T - вектор переноса.

Движение камеры относительно сцены эквивалентно обратному движению точек сцены относительно камеры, поэтому равно:

(2.7)

где R, T - матрица вращения и вектор перемещения камеры относительно сцены. Матрица С называется матрицей внешней калибровки камеры. Матрица C -1 называется матрицей движения камеры . Таким образом, матрица внешней калибровки камеры переводит координаты точек сцены из системы координат сцены в систему координат, связанную с камерой.

Полная модель перспективной проекции

Из выражений 2.1, 2.4, 2.7 можно вывести выражение произвольной перспективной проекции для любой камеры с произвольной ориентацией и положением в пространстве:

В более краткой форме с учетом предыдущих обозначений эта формула может быть записана как:

Матрица P называется матрицей проекции камеры.

По аналогии с общим перспективным преобразованием рассмотрим вначале простейший случай перспективного преобразования плоскости. Пусть плоскость p совпадает с плоскостью Z=0, тогда однородные трехмерные координаты любой ее точки M=. Для любой камеры с матрицей проекции P, перспективное преобразование плоскости описывается матрицей размерности 3*3:


Поскольку любую плоскость в 3-х мерном пространстве можно перевести в плоскость Z = 0 евклидовым преобразованием поворота и переноса, что эквивалентно домножению матрицы камеры P на матрицу преобразования L, то перспективное отображение произвольной плоскости в пространстве описывается линейным преобразованием с матрицей размерности 3*3.

Перспективное преобразование плоскости также называется гомографией . В матричной форме перспективное преобразование плоскости записывается как m=HM .

Геометрия двух изображений

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

Перспективное преобразование плоскости

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

Если вся сцена или ее часть представляет собой плоскость, то ее изображения на разных видах с несовпадающими центрами камер, можно перевести друг в друга преобразованием гомографии. Пусть p - наблюдаемая плоскость, H 1 - преобразование гомографии между плоскостью p и изображением I 1 , H 2 - преобразование гомографии между плоскостью p и изображением I 2 . Тогда преобразование гомографии H 12 между изображениями I 1 и I 2 можно вывести следующим образом:

H 12 не зависит от параметризации плоскости p, а значит не зависит и от системы координаты в пространстве

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

Поскольку преобразование гомографии записано в однородных координатах, то матрица H определена с точностью до масштаба. Она имеет 8 степеней свободы, и параметризируется 8 переменными. Каждое известная пара соответствующих точек m 1 и m 2 на первом и втором изображении соответственно дает 2 линейных уравнения от элементов матрицы H. Поэтому 4-х известных пар соответствующих точек достаточно для составления системы линейных уравнений из 8 уравнений с 8 неизвестными. По этой системе гомография H может быть однозначно определена, если никакие три из точек не лежат на одной прямой.

Фундаментальная матрица

Рассмотрим случай, когда центры камер двух видов не совпадают. Пусть C 1 и C 2 - центры двух камер, M - 3-х мерная точка сцены, m 1 и m 2 - проекции точки M на первое и второе изображение соответственно. Пусть П - плоскость, проходящая через точку M и центры камер C 1 и C 2 . Плоскость П пересекает плоскости изображений первого и второго видан по прямым l 1 и l 2 . Поскольку лучи C 1 M и C 2 M лежат в плоскости П, то очевидно, что точки m 1 и m 2 лежат на прямых l 1 и l 2 соответственно. Можно дать более общее утверждение, что проекции любой точки M", лежащей в плоскости П, на оба изображения должны лежать на прямых l 1 и l 2 . Эти прямые называются эпиполярными линиями. Плоскость П называются эпиполярной плоскостью.

Два вида одной и той же сцены называются стереопарой, а отрезок C 1 C 2 , соединяющий центры камер, называется базой стереопары (baseline) или стереобазой. Любая эпиполярная плоскость проходит через отрезок C 1 C 2 . Пусть C 1 C 2 пересекает первое и второе изображение в точках e 1 и e 2 соответственно. Точки e 1 и e 2 называются эпиполярными точками или эпиполями. Все эпиполярные линии пересекаются в точках e 1 и e 2 на первом и втором изображении соответственно. Множество эпиполярных плоскостей представляет собой пучок, пересекающийся по стереобазе C 1 C 2 . Множество эпиполярных линий на обоих изображений также представляют собой пучки прямых, пересекающихся в e 1 и e 2 .

Точки m 1 и m 2 называются соответствующими, если они являются проекциями одной и той же точки сцены M. Эпиполярные линии l 1 и l 2 называются соответствующими, если они лежат в одной и той же эпиполярной плоскости П. Если эпиполярная плоскость П проходит через точку m 1 , тогда эпиполярные линии l 1 и l 2 , лежащие в ней, называются соответствующими точке m 1 .

Ограничение на положение соответствующих точек m 1 и m 2 , вытекающей из эпиполярной геометрии, можно сформулировать следующим образом: точка m 2 , соответствующая m 1 , должна лежать на эпиполярной линии l 2 , соответствующей m 1 . Это условие называется эпиполярным ограничением. В однородных координатах условие того, что точка m лежит на линии l записывается как l T m=0 . Эпиполярная линия проходит также через эпиполярную точку. Уравнение прямой, проходящей через точки m 1 и e 1 можно записать как:

l 1 ∼ x m 1 ,

где x - антисимметричная матрица размерности 3*3 такая что, x m 1 - векторное произведение m 1 и e 1 .

Для соответствующих эпиполярные линий l 1 и l 2 верно:

где P + - псевдоинверсия матрицы P.

Матрица F называется фундаментальной матрицей. Она представляет собой линейный оператор, сопоставляющей каждой точке m 1 соответствующую ей эпиполярную линию l 2 . Для каждой пары соответствующих точек m 1 и m 2 верно

m T 2 Fm 1 =0

Это формулировка эпиполярного ограничения через фундаментальную матрицу.

Фундаментальная матрица имеет 7 степеней свободы. Каждая пара соответствующих точек m 1 и m 2 задает одно линейное уравнение на элементы матрицы, поэтому она может быть вычислена по известным 7 парам соответствующих точек.

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

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

Пусть P 1 =(I|0) и P 2 =(R|-RT) - две матрицы проектирования с калибровкой K = I. Тогда уравнения проектирования на идеальную плоскость обеих камер записываются в виде:

Найдем эпиполярную линию на втором виде, соответствующую точке m" 1 на первом. Для этого достаточно спроектировать на второй вид две точки, лежащие на луче (C 1 ,m" 1) на второй вид, например центр первой камеры (0,0,0,1) T и точку на плоскости бесконечности (x" 1 ,y" 1 ,z" 1 ,0) T . Проекциями этих точек будут являться соответственно -RT, и R(x" 1 ,y" 1 ,z" 1 ,0) T . Уравнение эпиполярной линии l 2 , проходящей через обе этих точки задается как векторное произведение:

l 2 =RT×R(x" 1 ,y" 1 ,z" 1) T =R(T×(x" 1 ,y" 1 ,z" 1) T)

В матричной форме векторне произведение T×(x" 1 ,y" 1 ,z" 1) T можно записать с помощью матрицы S:

Тогда эпиполярное ограничение на точки в идеальной плоскости записывается как:

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

Геометрические свойства трех и более изображений

Пусть C 1 ,C 2 и C 3 - центры трех видов одной и той же трехмерной сцены. В этом случае, эпиполярные ограничения накладываются на соответствующие точки любой пары видов. Если известны проекции двух точек m 1 и m 2 на первый и второй вид, то положение проекции на третье изображение может быть найдено как пересечение двух эпиполярных видов, соответствующих точкам m 1 и m 2 .

По двум известным проекциям m 1 и m 2 на два изображения с известной калибровкой можно определить положение точки M в пространстве. Поэтому если известна калибровка третьего изображения, то проекция точки M на третий вид может быть определена простой проекцией.

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