Разделы презентаций


Растровые алгоритмы и характеристики растра

Содержание

Глубина цветаКоличество цветов (глубина цвета) – одна из основных характеристик изображения или устройства графического вывода. Согласно психофизиологическим исследованиям глаз человека способен различать 350 000 цветов. Однако в компьютерной графике в настоящее время

Слайды и текст этой презентации

Слайд 1Компьютерная графика лекция 2
Растровые алгоритмы и характеристики растра

Компьютерная  графика  лекция 2Растровые алгоритмы и характеристики растра

Слайд 2Глубина цвета
Количество цветов (глубина цвета) – одна из основных характеристик

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

способен различать 350 000 цветов.
Однако в компьютерной графике в настоящее время используются изображения с формально гораздо большей глубиной цвета (16.7 млн цветов), тем не менее следует учитывать, что для синтезированных цветов на каждый из компонентов цвета в этом случае отводится только 256 градаций, которые достаточно хорошо различимы глазом человека.

Классифицируем изображения следующим образом:
бинарные – 1 бит на пиксель – обычно чёрно-белые изображения
полутоновые – 1 байт на пиксель – изображение в градациях серого
Hi Color – 16 бит на пиксель – 65536 цветов
True Color – от 24 бит на пиксель (16,7 млн. цветов) до 48 бит на пиксель

128

Глубина цветаКоличество цветов (глубина цвета) – одна из основных характеристик изображения или устройства графического вывода. Согласно психофизиологическим

Слайд 3Палитра
Палитра (palette) – набор цветов, используемых в изображении или при

отображении видеоданных. Палитру можно воспринимать как таблицу кодов цветов (обычно

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

Слайд 4Геометрические характеристики растра
Разрешающая способность характеризует расстояние между соседними точками растрового

изображения и измеряется обычно в dpi (dots per inch)
dpi

= 25.4 / dP

Связность – соседство двух пикселей в растровом изображении

Геометрические характеристики растраРазрешающая способность характеризует расстояние между соседними точками растрового изображения и измеряется обычно в dpi (dots

Слайд 5Методы улучшения растровых изображений: anti-aliasing (устранение ступенчатого эффекта)

Мультисэмплинг 4х – один

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

Методы улучшения растровых изображений: anti-aliasing (устранение ступенчатого эффекта)Мультисэмплинг 4х – один из вариантов антиалисинга:пиксель делится на 4

Слайд 6Методы улучшения растровых изображений: smoothing (сглаживающие фильтры)


рекурсивная
фильтрация

Методы улучшения растровых изображений: smoothing (сглаживающие фильтры)рекурсивнаяфильтрация

Слайд 7Методы улучшения растровых изображений: dithering (эмуляция оттенков цвета)





Для ячейки с размерами

n x n можно получить n 2+1 различных градаций
При

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

Слайд 8Растровые алгоритмы рисования прямых и эллипсов: постановка проблемы

x
y
x1
x2
y1
y2
for (x=x1; x


{
y=y1+((x-x1)*(y2-y1))/(x2-x1);
SetPixel(x,y);
}
float k = (float) (y2-y1) / (float) (x2-x1);
for

(x=x1; x<=x2; x++)
{
y=y1+ (float) (x-x1) * k;
SetPixel(x,y);
}

float k = (float) (y2-y1) / (float) (x2-x1);
float yy=(float) y1 – (float) x1*k
for (x=x1; x<=x2; x++)
{
y=yy+(float) x*k;
SetPixel(x,y);
}

float k = (float) (y2-y1) / (float) (x2-x1);
float yy = y1;
for (x=x1; x<=x2; x++)
{
yy += k; y = yy
SetPixel(x,y);
}

Растровые алгоритмы рисования прямых и эллипсов: постановка проблемыxyx1x2y1y2for (x=x1; x

Слайд 9Растровые алгоритмы рисования прямых: инкрементный алгоритм Брезенхема

Ti = (xi, yi)
y =

x·Δy/Δx
Рi-1= (xi-1,yi-1)
Si = (xi, yi-1)

Растровые алгоритмы рисования прямых: инкрементный алгоритм БрезенхемаTi = (xi, yi)y = x·Δy/ΔxРi-1= (xi-1,yi-1)Si = (xi, yi-1)

Слайд 10Растровые алгоритмы рисования прямых: инкрементный алгоритм Брезенхема

Для 8-связных пикселей:

int dx =

x2 - x1; int dy = y2 - y1; int d =

2 * dy - dx;
int d1 = 2*dy;
int d2 = 2*(dy - dx);
SetPixel(x1, y1, color);
for (int x = x1 + 1; int y = y1; x <= x2; x++)
{ if (d < 0) { d += d1;
} else {
d += d2;
y += 1; }
SetPixel( x, y, color); }
Растровые алгоритмы рисования прямых: инкрементный алгоритм БрезенхемаДля 8-связных пикселей:int dx = x2 - x1; int dy =

Слайд 11Растровые алгоритмы рисования прямых: инкрементный алгоритм Брезенхема

Для 4-связных пикселей:
void Line4 (int

x1, int y1, int x2, int y2, int color)
{
int dx

= x2 - x1;
int dy = y2 - y1;
int d = 0;
int d1 = dy << 1;
Int d2 = - ( dx << 1 );
SetPixel (x1, y1, color);
for ( int x = x1, y = y1, i = 1; i <= dx + dy; i++ ) {
if ( d > 0 ) {
d += d2; y += 1;
} else {
d += d1; x += 1;
}
SetPixel ( x, y, color);
}
}
Растровые алгоритмы рисования прямых: инкрементный алгоритм БрезенхемаДля 4-связных пикселей:void Line4 (int x1, int y1, int x2, int

Слайд 12Растровые алгоритмы рисования прямых: рисование окружностей и эллипсов

b2x2 + a2y2 =

a2b2
x
a
b



y2 = r2 – x2
Sin()
y
void Circle(int Xc,int Yc,int

radius,int c)
{
int x,y,d;
d = 3 - ( radius << 1);
x = 0; y = radius;
While ( x < y ) {
Set8Pixels( Xc, Yc, x, y, c );
If ( d > 0 ) {
d = d + ( x << 2 ) + 6;
} else {
d = d + ( (x-y) << 2 ) + 10;
y--;
}
x++;
}
}
Растровые алгоритмы рисования прямых: рисование окружностей и эллипсовb2x2 + a2y2 = a2b2 xaby2 = r2 – x2

Слайд 13Растровые алгоритмы закрашивания: простое рекурсивное заполнение

В закрашиваемой области указывается затравочная точка.

Область может содержать полости и быть сколь угодно сложной формы.

Необходимо лишь, чтобы внешняя граница и границы полостей были 8-связны и их цвет отличался от цвета заполнения.

void PixelFill (int x, int y, int BC, int color)
{
int c = GetPixel ( x, y );
If (( c != BC ) && ( c != color ))
{
SetPixel ( x, y, color );
PixelFill ( x – 1, y, BC, color );
PixelFill ( x + 1, y, BC, color );
PixelFill ( x, y – 1, BC, color );
PixelFill ( x, y + 1, BC, color );
}
}

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

Слайд 14Растровые алгоритмы закрашивания: алгоритм закрашивания линиями

Имеется затравочная точка с координатами

(xst, yst) и начальное направление действия рекурсивных вызовов dir=1. Параметры

левой и правой границы вначале совпадают с координатой затравочной точки: xPL = xst, xPR = xst. Вызывается процедура LineFill, в которой:
Находятся xL и xR – левая и правая границы, между которыми проводится текущая горизонтальная линия.
Делается приращение у=у+dir и, между xL и xR, анализируется цвет пикселей над линией. Если он не совпадает с цветом заполнения, процедура LineFill вызывается рекурсивно с dir = 1 и xPL = xL, xPR = xR.
Делается приращение y=y–dir и, начиная от xL до предыдущего значения xPL анализируется цвет пикселей под линией. Если цвет пикселя отличается от цвета заполнения, процедура вызывается рекурсивно с dir = –1 и xPL = xL, xPR = xR.
Продолжая по той же горизонтали от предыдущего xPR до xR анализируется цвет под линией. Если цвет какого-либо пикселя отличается от цвета заполнения, процедура вызывается рекурсивно с dir = –1 и xPL = xL, xPR = xR.


XPL

XPR

XL

XR

Растровые алгоритмы закрашивания: алгоритм закрашивания линиями Имеется затравочная точка с координатами (xst, yst) и начальное направление действия

Слайд 15Растровые алгоритмы закрашивания: алгоритм закрашивания линиями

Растровые алгоритмы закрашивания: алгоритм закрашивания линиями

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика