10.4.1.     ПРЯМОЕ ПЕРСПЕКТИВНОЕ ПРЕОБРАЗОВАНИЕ:ДВЕ СИСТЕМЫ ОТСЧЕТА

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

ределить положение и ориентацию системы координат изображения по отношению к глобальной системе. Это может быть сделано с помощью следующих трех шагов. Сначала .мы переносим глобальную систему в центр вращения камеры (который можно назвать центром карданова шарнира). Затем мы поворачиваем и наклоняем оси так, чтобы ось Y ста^а параллельной оптической оси камеры. (Полученная в результате этого система отсчета будет называться кардано- вой системой координат.) И наконец, мы смещаем карданову систему отсчета из центра карданова шарнира в центр плоскости изображения. Введем несколько обозначений. Пусть Ѵо= (л;о, г/о, Zo)‘ будет вектор, проведенный из начала координат глобальной системы к центру карданова шарнира. Пусть Ѳ — угол поворота камеры, измеряемый против часовой стрелки от оси Y, и пусть ф — угол наклона камеры, положительное значение которого отсчитывается вверх. Пусть вектор 1 изображает постоянное смещение между центром карданова шарнира и центром плоскости изображения, причем 1 измеряется в системе координат карданова шарнира ^). Удобно записывать смещение 1 в виде 1= (/і, k+f, чтобы при совмещении центра карданова шарнира с центром объектива получалось Іі=1і=1з=0 и постоянное смещение величины / вдоль оптической оси. Для иллюстрации этих обозначений на рис. 10.3 схематически показаны вектор переноса Ѵо со всеми положительными компонентами, положительные углы поворота и наклона и вектор смещения, первая компонента которого равна нулю.

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

переводит однородное представление вектора (;с, у, z)* в однородное представление вектора   у~уо, г~гоУ. Более того, операция

чистого вращения, являющаяся линейным преобразованием в трехмерных декартовых координатах, остается линейной и в однород-

ных координатах. Нетрудно проверить, что матрица

действительно является оператором вращения, который поворачивает на угол Ѳ и наклоняет на угол ф. Другими словами, если даны однородные координаты ѵ некоторой точки в глобальной системе отсчета, то произведение Rv дает однородные координаты той же самой точки в системе координат изображения, повернутой на угол Ѳ и наклоненной на угол ф. Наконец, матрица G для реализации смещения относительно карданова шарнира определяется аналогично выражению (12) следующим образом:

Следовательно, полное изменение системы отсчета, представленное в однородных координатах, выражается произведением матриц GRT. Придерживаясь договоренности о тильдах и штрихах, мы напишем

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

Объединив изменение координат (15) с перспективным преобразованием (16), получим

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

Хотя выражение (17) является удобной для некоторых приложений формой, мы сможем установить ряд интересных и полезных фактов, если действительно выполним вычисления и затем преобразуем

результат в обычные декартовы координаты. А именно представим себе, что у нас есть точка объекта ѵ=(л:, у, г) и мы хотим найти ее образ (Хр, Zp) (припомним из предыдущего раздела, что только первая и третья компоненты точки изображения имеют значение). Подставив однородное представление ѵ= (wx, wy, wz, w)^ в формулу (17) и разделив первую и третью компоненты результирующего вектора на четвертую компоненту, мы получим результат, имеющий большое значение:

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