Формування 3D зображень

Затверджено

482.362.70915-28 13 59-3 ЛЗ

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

ЧЕРНІВЕЦЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

ІМЕНІ ЮРІЯ ФЕДЬКОВИЧА

Факультет комп’ютерних наук

Кафедра комп’ютерних систем та мереж









ФОРМУВАННЯ 3D ЗОБРАЖЕНЬ

(курсова робота)

482.362.70915-28 13 59-3





























2008р.


АНОТАЦІЯ



Тема дипломного проекту «Формування 3D зображень».

Призначення дипломного проекту полягає в створенні програми, яка здатна перетворювати двовимірні зображення у об’ємні. Такі перетворення дуже часто зустрічаються у програмах орієнтованих на розробку ігор, побудови ландшафтів, проектування будівель та об’єктів різної складності, які на даний час розвиваються швидкими темпами. Оскільки такі задачі містять велику кількість обчислень, то простіше їх виконувати з використанням комп’ютерних засобів.

Цей проект можна використовувати для побудови ландшафтів, отримання фотографій об’єктів під іншим кутом огляду, досліджень поверхонь зрізів матеріалів тощо. Також дана програма може бути використана для представлення студентам процесів перетворення зображень під час проходження лабораторних практикумів з курсу «Комп’ютерна графіка». Він добре демонструє процеси поворотів, зміни положення точки камери, згладження зображень при їх перетворенні в об’ємні. 

Даний проект актуальний в даний час, оскільки, вартість подібного програмного забезпечення, яке б реалізувало поставлені задачі, сягає декількох тисяч доларів та вимагає встановлення додаткових модулів в ОС. Також вони вимагають високого рівня кваліфікації користувачів. Наша програма не потребує встановлення та додаткового ПЗ, і має інтуїтивно зрозумілий інтерфейс. Крім того, вона є безкоштовна. 

Програмний продукт розроблено у обєктно-орієнтовному середовищі Delphi з використанням компонент роботи з бібліотекою OpenGL.

Дипломний проект містить 107 сторінок, 17 рисунків, 6 таблиць та 15 посилань на літературні джерела.




ЗМІСТ



1. ЗАГАЛЬНІ ВІДОМОСТІ

1.1 Позначення та найменування програми

1.2 Програмне забезпечення необхідне для функціонування програми	

1.3 Вибір мови програмування

2. ФУНКЦІОНАЛЬНЕ ПРИЗНАЧЕННЯ	

3. ОПИС АЛГОРИТМУ ПРОГРАМИ

4. ВИКОРИСТОВУВАНІ ТЕХНІЧНІ ЗАСОБИ

5. ВХІДНІ ТА ВИХІДНІ ДАНІ

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ




1. Загальні відомості



1.1 Позначення та найменування програми



Програма: „ Формування об’ємних зображень на основі фотографій ” розроблена згідно завдання на курсовий проект, який затверджено на Вченій Раді факультету комп’ютерних наук Чернівецького національного університету імені Юрія Федьковича. Після затвердження теми курсового проекту, програмному продукту присвоєно унікальний номер 482.362.70915-28 59-3. 



1.2 Програмне забезпечення необхідне для функціонування програми



Для коректної роботи прикладного програмного продукту «Формування об’ємних зображень на основі фотографій» необхідна стабільна робота операційної системи типу Windows (XP/Vista). Програма не потребує встановлення своїх файлів в операційну систему. При виявлені помилок в програмному продукту або при вдосконаленні її необхідно встановити обєктно-орієнтовну мову програмування Delphe/

Інших прикладних програмних продуктів даний проект не потребує.



1.3 Вибір мови програмування



Перед вибором мови програмування проводився аналіз сучасних інструментальних засобів програмування. Розглядалися переваги та недоліки різних мов програмування.

Виходячи з функціональних характеристик програмного продукту, та свого досвіду роботи з мовами програмування, на стадії проектування, інтегроване інструментальне середовище програмування Delphi задовольняє всі вимоги: зручність середовища програмування; 

інформаційна підтримка; підтримка графічного редактора, легкість програмування тощо. Тому вибір було зупинено саме на цьому середовищі.




2. Функціональне призначення



Програмний продукт призначено для створення об’ємних зображення з фотографій. Може застосовуватися для наглядного представлення процесів перетворення зображення студентам підчас проходження лабораторних практикумів з дисципліни „Комп’ютерна графіка”, яка ведеться для студентів 3-го курсу кафедри КСМ Чернівецького національного університету імені Юрія Федьковича. Також програма може бути застосована при створені простих ландшафтів, при розгляді моделей з різних сторін, для кращого їх зрозуміння.




3. ОПИС АЛГОРИТМУ ПРОГРАМИ



В основі алгоритму, що використовується в програмі лежить принцип побудови об’ємного по карті висот. Створення об’ємного зображення починається з визначення висоти кожного пікселя. Висота або відстань від віртуальної камери визначається інтенсивністю освітлення кожної точки зображення. Алгоритм роботи програми зображено на (рис. 3.1):






Визначення розміру зображення

Завантаження зображення  формату bmp

Початок

Розрахунок нормалей

Побудова карти висот



Завершення

Збереження отриманого результату у фоматі  bmp

Наближення та віддалення зображення

Поворот зображення по осі Х та У

Побудова трьох типів зображення (з сітко, згладжений, реалістичний)Рис. 3.1. Загальна схема роботи програми



Для правильного функціонування програми було створено такі основні процедури та компоненти:

		TBmp.bmp1Clіck;

		TBmp.CalcNormals;

		TBmp.Timer1Timer

		Назва процедури для збереж

Для завантаження використовується процедура TBmp.bmp1Clіck. Вона дозволяє відкрити відповідний діалог з допомогою методу OpenDialog1.Execute. При натисканні на відповідну кнопку відкривається діалогове вікно, в якому ми можемо вибрати потрібне зображення. Після чого проводиться перевірка зображення на відповідність встановленому формату. Якщо зображення відповідає графічному формату, то тоді проводиться зчитування інформації про файл з допомогою функції bmp.LoadFromFіle (рис. 3.2).





Рис. 3.2 Завантаження та визначення розміру зображення.



Під час зчитування даних з файлу відбувається створення динамічних масивів для збереження даних про складові кольору пікселя, середньої яскравості та висоти. Дані зберігаються у масиває cx, vx та nx, які призначені для кожного з панелей.

Для визначення нормалей зображень використовується процедура - TBmp.CalcNormals По нормалям розраховується освітленість об’єкта. Чим більше нормаль відвернеться від віртуальної камери, тим менше грань буде освітленою. Якщо нормаль відвернеться від камери більш ніж на 90 градусів, ми взагалі не побачимо грані.

Для визначення нормалей в програмі використовуються наступні формули: 

- визначення точки обертання зображення (центра зображення).

Визначається для того, щоб зображення оберталося рівномірно під любим кутом обертання. В програмі відповідає значенням dw, dh та dv (ширина, висота та довжина). Інформація про розміри береться при завантаженні зображення.

Побудова трьох типів зображення відбувається з допомогою процедури TBmp.Timer1Timer. В даній процедурі відбуваються всі основні дії, які пов’язані побудовою зображень:

Формування та відображення основних трьох типів зображення.

Обертання зображення вісі Х та У.

Віддалення та наближення зображення.

Формування та відображення основних трьох типів зображення відбувається з допомогою циклу, в якому визначається номер панелі з якою необхідно проводити дії. Після визначення номеру панелі відбувається її активація, встановлення розмірів панелі, та вивід інформації у вказану панель з динамічних масивів. Вивід здійснюють вбудовані процедури OpenGL glNormal3f, glVertex3f та glColor3f, які після перетворень дають на екран зображення.

Обертання зображення вісі Х та У здійснюється з допомогою двох компонентів TrackBar3, які знаходиться на головному вікні. Осі обертання визначаються командою glRotatef , в якій вказуються осі з допомогою 1 «glRotatef(TrackBar.Posіtіon,1,0,0)» (рис. 3.5). Після змін положень відбувається повторний виклик відображення зображень.






Рис. 3.5 Поворот зображення по висям Х та У.



Віддалення та наближення зображення працює за схожою системою. Віддалення та наближення зображення здійснюється з допомогою повзунка TrackBar4. Дії визначаються командою glTranslatef (рис. 3.6, 3.7).





Рис. 3.6 Віддалення зображення






Рис. 3.7 Наближення зображення



Збереження отриманого зображення під необхідним кутом виконується з допомогою виклику процедури збереження зображень. На головному вікні розташовані три RadioButton, кожному з яких присвоєне окреме вікно панелі з зображенням. Також на головному вікні розташована кнопка «Збереження зображення» з підключеним до неї компонентом SavePictureDialog та встановленими форматами збереження. При обранні одного з трьох RadioButton та кліку на кнопку «Збереження зображення» викликається процедури збереження зображень та з’являється діалогове вікно в якому вписується назва та формат зображення та зберігається інформація з потрібного вікна(рис. 3.8). 






Рис. 3.8 Збереження зображення в форматі bmp



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




4. Використовувані технічні засоби



До технічних засобів відносимо ПК з стабільною роботою операційної системи типу Windows (XP/Vista) та інтегрованого інструментального середовища програмування Delphi. Для тестування був використаний такі технічні засоби:

- процесор - AMD Turion MK36 2.0 GHz

- пам'ять (RAM) – 1024 MB

- відео карта – nVIDIA GeForceGo 7300 




5. Вхідні та вихідні дані



До складу вхідних даних програмного продукту, відносяться зображення – від скановані зображення, фотографії та малюнки, початкове розбиття карти висот. Також до вхідних даних відноситься початкові налаштування програми для роботи з бібліотекою OpenGL.

Вихідними даними являються панелі з зображенням після перетворення, збережені файли зі зміненим кутом обзору.





If .bmp 





Зчитування інформації про фаїл







Розрахунок нормалеї TBmp.CalcNormals







Побудова зображень трьох типів ( з сіткою, згладжений, реалістичний)









Вивід результату у вікна та збереження

		

		



кінець






Список використанИХ ДЖЕРЕЛ



1. Гофман В. Хомоненко А. Delphi 6. – СПб: БХВ-Петербург, 2001. – 1135 с.

2. Агуров П. Последовательные интерфейсы ПК. –СПб.: БХВ-Петербург, 2004.– 496 с.

3. Божко А. Жук Д. Маничев В. Компьютерная графика. – М: МГТУ им. Батмана, 2007. - 392 с.

		4. Пашеку Х. Программирование в Borland Delphi 2006 для профессионалов. СПб: Вильямс, 2006 - 944 с.