Алгоритмы растровой графики

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

Рубрика Программирование, компьютеры и кибернетика
Вид лекция
Язык русский
Дата добавления 26.09.2017
Размер файла 338,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

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

Основная задача распознавания образов состоит в преобразовании уже имеющегося изображения на формально понятный язык символов. Распознавание образов или система технического зрения (COMPUTER VISION) - совокупность методов, позволяющих получить описание изображения, поданного на вход, либо отнести заданное изображение к некоторому классу (так поступают, например, при сортировке почты). Одной из задач COMPUTER VISION является так называемая склетизация объектов, при которой восстанавливается некая основа объекта, его «скелет».

Обработка изображений (IMAGE PROCESSING) рассматривает задачи в которых и входные и выходные данные являются изображениями. Например, передача изображения с устранением шумов и сжатием данных, переход от одного вида изображения к другому (от цветного к черно белому) и т.д.

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

Рис. 1.1

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

1. Алгоритмы растровой графики

1.1 Растровые представления изображений

Цифровое изображение - набор точек (пикселей) изображения; каждая точка изображения характеризуется координатами x и y и яркостью V(x,y), это дискретные величины, обычно целые. В случае цветного изображения, каждый пиксель характеризуется координатами x и y, и тремя яркостями: яркостью красного, яркостью синего и яркостью зеленого (VR ,VB, VG). Комбинируя данные три цвета можно получить большое количество различных оттенков.

Рис. 2.1.1

Под градацию яркости обычно отводится 1 байт, причем 0 - черный цвет, а 255 - белый (максимальная интенсивность). В случае цветного изображения отводится по байту на градации яркостей всех трех цветов. Возможно кодирование градаций яркости другим количеством битов (4 или 12), но человеческий глаз способен различать только 8 бит градаций на каждый цвет, хотя специальная аппаратура может потребовать и более точную передачу цветов.

Цветовое пространство, образуемое интенсивностями красного, зеленого и синего, представляют в виде цветового куба.

Рис. 2.1.2 «Цветовой Куб»

Вершины куба A, B, C являются максимальными интенсивностями зеленого, синего и красного соответственно, а треугольник которые они образуют называется треугольником Паскаля периметр этого треугольника соответствует максимально насыщенным цветам. На отрезке OD находятся оттенки серого, причем тока O соответствует черному, а точка D белому цвету.

Растр - это порядок расположения точек (растровых элементов). На рис. 2.1.1 изображен растр элементами которого являются квадраты, такой растр называется квадратным, именно такие растры наиболее часто используются. Хотя возможно использование в качестве растрового элемента фигуры другой формы, соответствующего следующим требованиям:

1. Все фигуры должны быть одинаковые;

2. Должны полностью покрывать плоскость без наезжания и дырок.

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

Рис. 2.1.3 «Треугольный растр»

Рис. 2.1.4 «Гексагональный растр»

Рассмотрим способы построения линий в прямоугольном и гексагональном растре.

В квадратном растре построение линии осуществляется двумя способами:

1) Результат - восьмисвязная линия. Соседние пиксели линии могут находится в одном из восьми возможных (см. рис. 2.1.5а) положениях. Недостаток - слишком тонкая линия при угле 45.

2) Результат - четырехсвязная линия. Соседние пиксели линии могут находится в одном из четырех возможных (см. рис. 2.1.5б) положениях. Недостаток - избыточно толстая линия при угле 45.

Рис. 2.1.5 «Построение линии в прямоугольном растре»

В гексагональном растре линии шестисвязные (см. рис. 2.1.6) такие линии более стабильны по ширине, т.е. дисперсия ширины линии меньше, чем в квадратном растре.

Рис. 2.1.6 «Построение линии в гексагональном растре»

Каким образом можно оценить, какой растр лучше?

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

Моделирование гексагонального растра

Возможно построение гексагонального растра на основе квадратного. Для этого гексаугольник представляют в виде прямоулогьника (см. рис. 2.1.7).

Определим, какие пропорции должно иметь гексагональное изображение?

Рис. 2.1.8

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

Рис. 2.1.7 «Построение гексагонального растра на квадратном»

Тот факт, что гексагональный растр не используется, объясняется следующими причинами:

1. некоторое усложнение алгоритмов;

2. преимущество гексагонального растра не очень велико;

3. историческая ориентация на прямоугольный растр.

Для программного построения гексагонального растра в квадратном можно использовать модель представленную на рис. 2.1.8.

Рис. 2.1.8 «Построение гексагонального растра в квадратном»

1.2 Построение линии в квадратном растре

Поскольку экран растрового дисплея с электронно-лучевой трубкой (ЭЛТ) можно рассматривать как матрицу дискретных элементов (пикселей), каждый из которых может быть подсвечен, нельзя непосредственно провести отрезок из одной точки в другую. Процесс определения пикселей, наилучшим образом аппроксимирующих заданный отрезок, называется разложением в растр. В сочетании с процессом построчной визуализации изображения он известен как преобразование растровой развертки. Для горизонтальных, вертикальных и наклоненных под углом 45° отрезков выбор растровых элементов очевиден. При любой другой ориентации выбрать нужные пиксели труднее, что показано на рис. 2.2.1.

Рис. 2.2.1 «Разложение в растр отрезков»

Общие требования к изображению отрезка.

---концы отрезка должны находиться в заданных точках;

---отрезки должны выглядеть прямыми,

---яркость вдоль отрезка должна быть постоянной и не зависеть от длины и наклона.

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

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

---отрезок аппроксимируется набором пикселов и лишь в частных случаях вертикальных, горизонтальных и отрезков под 45? они будут выглядеть прямыми, причем гладкими прямыми, без ступенек только для вертикальных и горизонтальных отрезков (рис. 2.2.1);

---яркость для различных отрезков и даже вдоль отрезка в общем случае различна, так как, например, расстояние между центрами пикселов для вертикального отрезка и отрезка под 45? различно (см. рис. 2.2.1).

Объективное улучшение аппроксимации достигается увеличением разрешения дисплея, но в силу существенных технологических проблем разрешение для растровых систем приемлемой скорости разрешение составляет порядка 1280Ч1024.

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

растровый изображение алгоритм моделирование

1.3 Параметрический алгоритм рисования линии

Необходимо провести линию из точки (x1, y1) в точку (x2, y2) с линейной интерполяцией по яркости. рис. 2.3.1

Рис. 2.3.1

Любую точку на этой линии можно представить в виде

;

где , ][ - знак округления до целого.

N - длина линии в пикселях.

Можно проводить вычисления через приращение координат.

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

Недостатки алгоритма:

·--Необходимость работать с вещественными числами.

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

Достоинства алгоритма:

·--Простота программной реализации.

·--Простота реализации линейной интерполяции по яркости.

1.4 Алгоритм Брезенхема рисования линии

В 1965 году Брезенхеймом был предложен простой целочисленный алгоритм для растрового построения отрезка. В алгоритме используется управляющая переменная di, которая на каждом шаге пропорциональна разности между s и t (см. рис.2.4.1). На рис.2.4.1 приведен i-ый шаг, когда пиксел Pi-1 уже найден как ближайший к реальному изображаемому отрезку, и теперь требуется определить, какой из пикселов должен быть установлен следующим: Ti или Si.

Если s<t, то Si ближе к отрезку и необходимо выбрать его; в противном случае ближе будет Ti. Другими словами, если s-t<0, то выбирается Si; в противном случае выбирается Ti.

Рис. 2.4.1.

Изображаемый отрезок проводится из точки (x1, y1) в точку (x2, y2). Пусть первая точка находится ближе к началу координат, тогда перенесем обе точки, T(x1, y1) так, чтобы начальная точка отрезка оказалась в начале координат, тогда конечная окажется в (D x, D y), где Dx= x2- x1 , D y= x2- x1. Уравнение прямой теперь имеет вид y=xЧ D y/Dx. Из рисунка следует, что

поэтому

помножим на D x:

так как D x>0, величину D x(s-t) можно использовать в качестве критерия для выбора пиксела. Обозначим эту величину di:

так как r = xi-1, q = yi-1, получаем:

Известно, что xI - xi-1=1.

Если di >= 0, то выбираем Ti, тогда

Если di <0, то выбираем Si, тогда

Таким образом, мы получили итеративную формулу для вычисления критерия di.

Начальное значение d1=2D y-D x.

Можно построить блок схему алгоритма:

Рис. 2.4.2

Линейная интерполяция по яркости при построении отрезка по алгоритму Брезенхема получается параметрическим способом, т.е.

,

где N - длина отрезка в пикселях.

1.5 Алгоритмы построения окружности

Рассмотрим окружность с центром в начале координат, для которой x2+y2=R2, или в параметрической форме:

1. x=RЧ cos(a);

2. y=RЧ sin(a).

То есть легко написать программу рисования окружности:

void Circle (int x, int y, int R, int color)

{

int a;

int x1;

int x2;

int y1;

int y2;

x2=x+R;

y2=y;

for ( int a=1; a<=360; a++)

{

x1=x2; y1=y2;

x2=round(R*cos(a))+x;

y2=round(R*sin(a))+x;

Line (x1, y1, x2, y2, color);

}

}

Рис. 2.5.1.

Если воспользоваться симметрией окружности, то можно построить более эффективный алгоритм. Если точка (x, y) лежит на окружности, то легко вычислить семь точек, принадлежащих окружности, симметричных этой. То есть, имея функцию вычисления значения y по x=0..R/SQRT(2) для построения дуги от 00 до 450. Построим процедуру, которая будет по одной координате ставить восемь точек, симметричных центру окружности.

void Circle_Pixel(int x0, int y0, int x, int y, int color);

{

putpixel(x0 + x, y0 + y, color);

putpixel(x0 + y, y0 + x, color);

putpixel(x0 + y, y0 - x, color);

putpixel(x0 + x, y0 - y, color);

putpixel(x0 - x, y0 - y, color);

putpixel(x0 - y, y0 - x, color);

putpixel(x0 - y, y0 + x, color);

putpixel(x0 - x, y0 + y, color);

}

Таким образом можно написать программу рисование окружности по точкам:

void Circle (int x0, int y0, int R, int color)

{

for ( int x=0; x<=R/sqrt(2); x++)

{

int y = (int)(sqrt(sqr(R)-sqr(x)));

Circle_Pixel (x0, y0, x, y, color);

}

}

1.6 Алгоритм Брезенхема генерации окружности

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

Рис. 2.6.1

Будем рассматривать сегмент окружности, соответствующий x=x0.. x0+R/sqrt(2). На каждом шаге выбираем точку, ближайшую к реальной окружности. В качестве ошибки возьмем величину D(Pi)=(x2i+ y2i) - R2.

Рассмотрим рис. 2.6.1 , на котором показаны различные возможные способы прохождения истинной окружности через сетку пискселов. Пусть пиксел Pi-1 уже найден как ближайший к реальной изображенной окружности, и теперь требуется определить, какой из пикселов должен быть установлен следующим: Ti или Si. Для этого определим точку, которой соответствует минимальная ошибка:

D(Si)=((q+1)2+ p2 ) - R2, D(Ti)=((q+1)2+ (p+1)2 ) - R2.

Если |D(Si)| < |D(Ti)|, то выбираем Si, иначе - Ti. Введем величину di = |D(Si)| - |D(Ti)|, тогда Si выбирается при di < 0, иначе выбирается Ti. Если рассматривать только часть окружности, дугу от 00 до 450, то D(Si) > 0 так как точкаSi лежит за пределами окружности, а D(Ti) < 0, так как Ti находится внутри окружности, поэтому

di = D(Si) + D(Ti).

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

d1=3-2R.

Если выбираем Si (когда di < 0 ),

Di=4xi-1+6;

если выбираем Ti (когда di >=0 ),

D i=4(xi-1 * yi-1) +10.

Блок-схема этого алгоритма (рис. 2.6.2).

Рис. 2.6.2

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

1.7 Отсечение по полю вывода

На рис.2.7.1. показана плоская сцена и отсекающее окно регулярной формы. Окно задаётся левым (Л), правым (П), верхним (В) и нижним (Н) двумерными ребрами. Регулярным отсекающим окном является прямоугольник, стороны которого параллельны осям координат объектного пространства или осям координат экрана. Целью алгоритма отсечения является определение тех точек, отрезков или их частей, которые лежат внутри отсекающего окна. Эти точки, отрезки или их части остаются для визуализации. А все остальное отбрасывается.

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

Точки, лежащие внутри отсекающего окна, удовлетворяют условию:

xл <= х <= xп и ун <= у <= ув.

Рис. 2.7.1.

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

Отрезок лежит внутри окна и, следовательно, является видимым, если обе его концевые точки лежат внутри окна, например отрезок ab на рис. 2.7.1. Однако если оба конца отрезка лежат вне окна, то этот отрезок не обязательно лежит целиком вне окна, например отрезок gh на рис. 2.7.1. Если же оба конца отрезка лежат справа, слева, выше или ниже окна, то этот отрезок целиком лежит вне окна, а значит, невидим. Проверка последнего условия устранит все отрезки, помеченные ij на рис. 2.7.1. Но она не устранит ни отрезка gh, который видим частично, ни отрезка kl, который целиком невидим.

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

Алгоритм Коэна-Сазерленда

Для решения задачи определения принадлежности отрезка полю вывода используется следующий метод. Пространство разбивается на 9 областей, каждая из областей кодируется бинарным 4-х битным кодом рис. 2.7.2.

Рис. 2.7.2. «Кодирование пространства»

Для каждого отрезка рассчитываются коды концов (К1, К2) затем производится экспресс анализ:

·--Если, тогда отрезок лежит вне поля вывода - отрезок отбрасывается

·--Если , тогда отрезок полностью лежит внутри поля вывода - отсечение не нужно, отрезок полностью прорисовывается

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

Алгоритм отсечения по прямоугольной области

Когда необходимо отсекать отрезок по границам поля вывода, отсечение происходит последовательно по всем сторонам рис. 2.7.3.

Рис.2.7.3. «Отсечение отрезка по прямоугольной области»

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

На каждом шаге отсечения вычисляются новые координаты одной точек, найдем формулы для вычисления новых координат.

Рис.2.7.4.

Формулы для расчета новых координат:

а);

б)

1.8 Методы устранения ступенчатости

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

Рис. 2.8.1. «Цветовой клин»

Метод полутонов

Сущность: каждый пиксель исходного изображения заменяется группой пикселей рис.2.8.2.

Рис. 2.8.2.

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

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

Метод переноса.

В данном методе разрешение изображения не изменяется.

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

Пример реализации данного алгоритма для прямой приведен на рис.2.8.3.

Рис. 2.8.3.

Метод переноса можно использовать и в случае большего числа градаций.

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

1.9 Закраска областей

Существует несколько вариантов задания областей.

1) Внутренне определенные области.

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

Рис. 2.9.1.

2) Гранично-определенные области.

Рис. 2.9.2.

Существуют некоторые “затравочные” точки, соответственно которым необходимо закрашивать область. Для удержания 8-связной области нужно использовать 4-х связные границы, для удержания 4-связной области достаточно 8-и связных границ.

3) Область, заданная списком вершин (проводится граница и используется алгоритм 2).

Закраска гранично-связной области

Существует несколько алгоритмов закраски такой области. Рассмотрим два из них.

1) Использует рекурсию. Метод прост для программирования, однако крайне неэффективен. От затравочной точки просматривают все точки. Если они не граничные, закрашивают и посылают в стек. Далее вытаскивают из стека, и если точка не является граничной и закрашенной, делают то же самое. См. блок-схему рис.2.9.3.

Рис. 2.9.3.

Рис. 2.9.4.

Алгоритм закраски областей, заданных списком вершин (метод построчного сканирования)

Интерполяция яркости при закраске областей

О линейной интерполяции яркости при закраски области можно говорить, если закрашиваемая фигура плоская т.е. лежит в одной плоскости, например (ХУ).

Рис. 2.9.5.

Плоскость определяется по трём точкам:

Рис. 2.9.6.

|| || - определитель матрицы;

V = V1 + б (х - х1)+в (у - у1),

где

V - яркость в произвольной точке, V1 - яркость известная.

Предварительно производится отсечение многоугольника по полю вывода. Существуют различные задачи закраски: выпуклых многоугольников и многоугольников произвольной формы. Начнем с закраски произвольного многоугольника.

Рис.2.9.7.

Сначала находят ymax и ymin. Далее для текущей у-координаты находят крайнее левое и крайнее правое ребро. Начинают с крайнего левого ребра: идут вправо (и закрашивают соответствующие точки) до пересечения со следующим ребром. Также необходим анализ на наличие локальных экстремумов. В этих точках режим закраски не меняется.

Алгоритм работает с помощью 2-х таблиц:

1. таблица ребер (ТР);

2. таблица активных ребер (ТАР);

В ТР заносятся все ребра, а в ТАР лишь те ребра, которые мы пересекаем.

Составление ТР:

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

Таблица рёбер:

ц

Ребро

ymin

ymax

хНАЧ

хКОН

?x

VНАЧ

VКОНЕЧ

?V

1

АВ

2

8

1

4

0.5

АЕ

4

1

5

2

DC

6

7

8

0.25

DE

4

7

5

-1

2

CB

6

8

8

4

-2

Алгоритм

1. Сформировать ТР и подготовить ТАР

2. Выбор первой координаты сканируемой строки: у = min {ymin};

3. Если у = уmin, то перенос группы из ТР в ТАР.

Таблица активных ребер (ТАР)

Ребро

уНАЧ

хНАЧ

VНАЧ

?V

AB

2

1

0.5

AE

2

1

2

DC

2

7

0.25

DE

2

7

-1

4. Упорядочивание ребер в ТАР по возрастанию хНАЧ.

5. Сканирование (проводят сканирующую строку).

а) переключение режимов по хНАЧ

б) учёт прохождения через вершины - локальные экстремумы. Если точка - локальный экстремум, то режим следует сохранить. Для отслеживания данной ситуации можно включить в ТР уmax, при совпадении необходим дополнительный анализ.

в) проводить линейную интерполяцию яркости при закраске от (хНАЧ , VНАЧ)i до (хНАЧ , VНАЧ)i+1

6. Удалить из ТАР те ребра, для которых справедливо у = уmax

7. Для всех элементов в ТАР произвести:

хНАЧ = хНАЧ + ?х; VНАЧ = VНАЧ + ?V;

8. Переход к следующей сканирующей строке: y=y+1;

9. Проверка на окончание: если y>max{уmax}, то конец, иначе осуществить переход к п.3).

2. Геометрические преобразования

2.1 Координаты и преобразования

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

Далее большими буквами x, y, z будут обозначаться обычные декартовые координаты, а маленькие буквы X, Y, Z будут использоваться для обозначения т.н. однородных координат.

2.2 Двумерные геометрические преобразования

Параллельный перенос

Параллельный перенос в плоском случае имеет вид:

или в векторной форме:

где P` = [x` y`] - вектор-строка преобразованных координат,

где x, y - исходные координаты точки,

Tx, Ty - величина сдвига по осям,

x`, y` - преобразованные координаты.

P = [x y] -- вектор-строка исходных координат,

P` = [x` y`] -- вектор-строка преобразованных координат,

T = [Tx Ty] -- вектор-строка сдвига.

Масштабирование

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

или в матричной форме:

где Sx, Sy -- коэффициенты масштабирования по осям, а

S - матрица масштабирования

Поворот

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

Где R - матрица поворота

ц - положительный угол поворота

или в матричной форме:

Столбцы и строки матрицы поворота представляют собой взаимно ортогональные единичные векторы. В самом деле квадраты длин векторов-строк равны единице:

а скалярное произведение векторов-строк есть

Так как скалярное произведение векторов A ·B = |A|--·|B| ·cosy, где |A| - длина вектора A, |B| - длина вектора B, а--y - наименьший положительный угол между ними, то из равенства скалярного произведения двух векторов-строк длины 1 следует, что угол между ними равен 90?.

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

т.е. это единичный вектор вдоль оси X.

Аналогично, произведение второго столбца на матрицу даст вектор [ 0 1 ]. Это позволяет сформировать матрицу, если известны результаты преобразования.

Размещено на Allbest.ru


Подобные документы

  • Растровая графика, составление графических изображений из отдельных точек (пикселей). Растровые графические редакторы. Векторная графика - построение изображения из простых объектов. Достоинства, недостатки и применение растровой и векторной графики.

    презентация [7,8 K], добавлен 06.01.2014

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

    презентация [883,6 K], добавлен 26.01.2015

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

    презентация [521,5 K], добавлен 16.01.2012

  • Теоретические основы распознавания образов. Функциональная схема системы распознавания. Применение байесовских методов при решении задачи распознавания образов. Байесовская сегментация изображений. Модель TAN при решении задачи классификации образов.

    дипломная работа [1019,9 K], добавлен 13.10.2017

  • Методы предобработки изображений текстовых символов. Статистические распределения точек. Интегральные преобразования и структурный анализ. Реализация алгоритма распознавания букв. Анализ алгоритмов оптического распознавания символов. Сравнение с эталоном.

    курсовая работа [2,1 M], добавлен 20.09.2014

  • Виды компьютерной графики. Photoshop – программа для создания и обработки растровой графики. Пакет программ для работы с векторной графикой CorelDraw. Обработка растровых изображений с использованием Photoshop. Этапы создания коллажа на тему "Музыка".

    курсовая работа [2,3 M], добавлен 27.12.2014

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

    шпаргалка [49,9 K], добавлен 13.09.2011

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

    дипломная работа [887,3 K], добавлен 26.11.2013

  • Основы программирования на языке VB.NET. Область применения трехмерных изображений. Форматы хранения пакетов инженерной графики. Преимущества трехмерного моделирования. Разработка программы по вращению трехмерных изображений на языках VB.NET и VRML.

    курсовая работа [195,1 K], добавлен 11.03.2013

  • Основные категории изображений: растровые и векторные. Программы, работающие с растровыми изображениями. Инструменты для работы с обоими типами графики в программе Photoshop. Обзор современных программ обработки и просмотра графических изображений.

    курсовая работа [49,0 K], добавлен 20.09.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.