РефератыИнформатика, программированиеОтОтримання зображень з допомогою комп’ютерної графіки

Отримання зображень з допомогою комп’ютерної графіки

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ


Бердичівський політехнічний коледж


Контрольна робота


з предмета “Комп’ютерна графіка”


(варіант №5)


Виконав: студент групи ПЗС-504


Журавська О.О.


Перевірив


викладач: Козік В.Ю.


м. Бердичів - 2007 р.


Зміст


1. Колірна модель CMY та CMYK



2. Туман, тінь, відбиття в бібліотеці Opengl


3. Засобами бібліотеки Opengl забезпечити зміну кольору створеного трикутника при подвійному натисненні лівої кнопки миші


4. Для попереднього практичного завдання вашого варіанту забезпечити операцію масштабування використовуючи клавіші “+” та “-“


Список використаної літератури


1. Колірна модель CMY та CMYK


Використовується для опису кольору при отриманні зображень на пристроях, що реалізують принцип поглинання кольорів. У першу чергу, вона використовується в пристроях, що друкують на папері [16]. Назва даної моделі складається з назв основних субтрактивних кольорів: блакитного (Cyan), пурпурного (Magenta) та жовтого (Yellow) (рис. 1.27).



Для того, щоб розібратися з поглинанням кольорів, розглянемо рис. 1.28.



Нанесення жовтої фарби на білий папір означає, що поглинається відбитий синій колір. Блакитна фарба поглинає червоний колір. Пурпурна фарба — зелений. Комбінування фарб дозволяє отримати кольори, що залишилися — зелений, червоний, синій та чорний. Чорний відповідає поглинанню всіх кольорів при відбитті (рис. 1.29).


На практиці добитися чорного змішуванням важко через неідеальність фарб, тому у принтерах використовують ще й фарбу чорного кольору (blаск). Тоді модель називається CMYK.


Необхідно також відзначити, що не усякі фарби забезпечують вказане вище віднімання кольорів CMY. Докладніше про це в [10].



У таблиці 1.2 для порівняння надамо опис деяких кольорів у моделях RGB та CMY.



Співвідношення для перекодування кольору з моделі CMY в RGB:



І зворотне — з моделі RGB в CMY:



Тут вважається, що компоненти кодуються числами в діапазоні від 0 до 1. Для іншого діапазону чисел можна записати відповідні співвідношення.


Для вирішення проблеми від'ємних коефіцієнтів, що існувала для моделі RGB, в 1931 році Міжнародною Комісією по Освітленню (МКО) була прийнята колориметрична система XYZ (рис. 1.30). У системі МКО XYZ в якості основних кольорів були прийняті також три кольори, однак вони є умовними, нереальними [1, 14].


Розглянуті вище моделі так або інакше використовують змішування деяких основних кольорів. Тепер розглянемо колірну модель, яку можна віднести до іншого, альтернативного типу.


У моделі HSV колір описується наступними параметрами — колірний тон Н (hue), насиченість S (saturation), яскравість або світлота V {value) [28]. Значення Н вимірюється у градусах від 0 до 360, оскільки тут кольори розташовуються вздовж кола в такому порядку:


червоний, жовтогарячий, жовтий, зелений, блакитний, синій, фіолетовий (відоме прислів'я російською мовою — "каждый охотник желает знать, где сидят фазаны" — красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый). Значення S та V знаходяться в діапазоні (0 ... 1).



Наведемо приклади кодування кольорів для моделі HSV (рис. 1.31). При S = 0 (тобто на осі V) — сірі тони. Значення V= 0 відповідає чорному. Білий колір кодується як S = 0, V=1. Кольори, які розташовані вздовж кола один проти одного, тобто які відрізняються по Я на 180 градусів, є доповняльними [28]. Завдання кольорів за допомогою параметрів HSV досить часто використовується у графічних системах, причому зазвичай демонструється розгортка конуса.



Існують інші колірні моделі, побудовані аналогічно HSV, наприклад, модель HLS (Hue, Lighting, Saturation) також використовує колірний конус.


У [48] є відомості про колірну модель СІЕ L*a*b*, яка була прийнята МКО.


Усе перераховані вище колірні моделі описують колір трьома параметрами. Вони описують колір у досить широкому діапазоні. Тепер розглянемо колірну модель, у якій колір задається одним числом, але вже для обмеженого діапазону кольорів (відтінків).


На практиці часто використовуються чорно-білі (сірі) напівтонові зображення. Сірі кольори в моделі RGB описуються однаковими значеннями компонентів, тобто ri = gi = bi. Таким чином, для сірих зображень немає потреби використовувати трійки чисел — достатньо і одного числа. Це дозволяє спростити колірну модель. Кожна градація визначається яскравістю Y. Значення Y— 0 відповідає чорному, максимальне значення Y відповідає білому.


В якості прикладу розглянемо перетворення кольорових зображень, представлених у моделі RGB, у чорно-білі напівтонові зображення у градаціях сірого (подібно до того, як показуються кольорові фільми на екрані чорно-білого телевізора). Для цього можна скористатися співвідношенням



де коефіцієнти при R, G та В враховують різну чутливість зору до відповідних кольорів, а крім того, їхня сума дорівнює одиниці. Зазвичай, обернене перетворення R = Y, G = Y, В = Y не дасть ніяких інших кольорів, окрім градацій сірого.


Ще один приклад використання різних колірних моделей. При запису кольорових фотографій в графічний файл формату JPEG виконується перетворення опису кольорів з моделі RGB в модель (Y, СЬ, Сr). Це використовується для подальшого ущільнення обсягів інформації растрового зображення. При читанні файлів JPEG виконується обернене перетв

орення в RGB. Різноманітність моделей обумовлена різними областями їх використання. Кожна із колірних моделей була розроблена для ефективного виконання окремих операцій: вводу зображень, візуалізації на екрані, друку на папері, обробці зображень, зберігання в файлах, колориметричних розрахунків та вимірів. Перетворення однієї моделі в іншу може призвести до викривлення.


2. Туман, тінь, відбиття в бібліотеці Opengl


В OpenGL передбачено декілька функцій для моделювання розповсюдження світла в об'ємі напівпрозорого середовища. Ви, напевно, помічали, що в тумані чим більша відстань від точки спостереження до об'єктів, тим більше колір об'єктів змішується з кольором туману. Починаючи з деякої відстані, об'єктів не видно зовсім — це можна вважати як повну заміну кольору віддалених об'єктів на колір туману (наприклад, сірий). Для цього можна використати функцію glFog. Ця функція дозволяє визначити властивість змішування кольорів об'єктів і туману в залежності від відстані до об'єкту.


Змішування виконується згідно з формулою: С =fCo + (1-f )Сf ,


де Со — колір об'єкту, Сf— колір туману, С — колір результату, f— функція, яка враховує відстань точки об'єкта до точки спостереження, а також густину середовища. В OpenGL передбачені декілька різновидів функції/ Розглянемо це.


Для визначення типу функції / треба викликати glFog із параметром GL_FOG_MODE, наприклад, так:



Що це означає? Експоненціальний варіант описується так:






3. Засобами бібліотеки Opengl забезпечити зміну кольору створеного трикутника при подвійному натисненні лівої кнопки миші


Я взяла для виконання свого завдання програму Delphiі побудувала трикутник на формі придавши їй червоного кольору, при натиску змінює на рожевий, листинг програми матиме такий вигляд:



(мал. №1 )



(мал. №2 )


unit Unit1;


interface


uses


Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,


OpenGL;


type


TfrmGL = class(TForm)


procedure FormCreate(Sender: TObject);


procedure FormPaint(Sender: TObject);


procedure FormDestroy(Sender: TObject);


procedure FormKeyDown(Sender: TObject; var Key: Word;


Shift: TShiftState);


procedure FormKeyPress(Sender: TObject; var Key: Char);


private


hrc: HGLRC;


h : GLfloat;


end;


var


frmGL: TfrmGL;


Vert:array[1..6,1..10] of GLfloat;


mx,my:byte; //коефіцієнти збільшення/зменшення


implementation


{$R *.DFM}


procedure TfrmGL.FormPaint(Sender: TObject);


begin


wglMakeCurrent(Canvas.Handle, hrc);


glViewPort (0, 0, ClientWidth, ClientHeight);


glClearColor (0.5, 0.5, 0.75, 1.0);


glClear (GL_COLOR_BUFFER_BIT);


glColor3f (2.0, 0.0, 0.8); // текущий цвет примитивов


glBegin (GL_TRIANGLES);


glVertex3f (-1, -1, h);


glVertex3f (-1, 1, h);


glVertex3f (1, 0, h);


glEnd;


SwapBuffers(Canvas.Handle); // содержимое буфера - на экран


wglMakeCurrent(0, 0);


end;


procedure SetDCPixelFormat (hdc : HDC);


var


pfd : TPixelFormatDescriptor;


nPixelFormat : Integer;


begin


FillChar (pfd, SizeOf (pfd), 0);


pfd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;


nPixelFormat := ChoosePixelFormat (hdc, @pfd);


SetPixelFormat (hdc, nPixelFormat, @pfd);


end;


procedure TfrmGL.FormCreate(Sender: TObject);


begin


SetDCPixelFormat(Canvas.Handle);


hrc := wglCreateContext(Canvas.Handle);


h := 0.0;


end;


procedure TfrmGL.FormDestroy(Sender: TObject);


begin


wglDeleteContext(hrc);


end;


procedure TfrmGL.FormKeyDown(Sender: TObject; var Key: Word;


Shift: TShiftState);


begin


If Key = VK_ESCAPE then Close;


If Key = VK_SPACE then


begin


If ssShift in Shift


then h := h + 1


else h := h - 1;


Caption := Floattostr (h);


Refresh


end;


end;


procedure TfrmGL.FormKeyPress(Sender: TObject; var Key: Char);


begin


if key = '-' then mx:=mx+1;


if key = '+' then mx:=mx-1;


FormPaint(Sender);


end;


end.


4. Для попереднього практичного завдання вашого варіанту забезпечити операцію масштабування використовуючи клавіши “+” та “-“


Потім для точного виконання завдання виконала слідуючий алгоритм дій при цьому використала згідно варіанту клавіші «+» та «-», що по умові завдання виконують наближення та відділення фігури на фоні:


procedure TfrmGL.FormKeyPress(Sender: TObject; var Key: Char);


begin


if key = '-' then mx:=mx+1;


if key = '+' then mx:=mx-1;


InvalidateRect(Handle, nil, False);


end;


end.


Список використаної літератури


1. Блінова Т.О., Порєв В.М. Комп’ютерна графіка / За ред. В.М.Горєва. – К.: Видавництво “Юніор”, 2004. – 456с., іл.


2. С.В.Глушаков, Г.А.Крабе Компютерная графика, Харьков 2002


3. OpenGl, технология ставшая символов, Учебник в примерах.


4. Конспект лекцій.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Отримання зображень з допомогою комп’ютерної графіки

Слов:1332
Символов:11867
Размер:23.18 Кб.