Розробка програми псевдотонування комп'ютерного зображення

Склад комп'ютерного зображення та його обробка; псевдотонування як компенсація браку наявних кольорів; вибір варіантів. Проектування системи обробки растрових зображень, структура програмного забезпечення. Економічний розрахунок, заходи з охорони праці.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 26.12.2010
Размер файла 7,4 M

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

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

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

ЗМІСТ

Перелік умовних скорочень

Вступ

1. Загальні відомості про склад зображення та його обробку

1.2 Регулярний растр

1.3 Стохастичний растр

1.4 Кут повороту растру

1.5 Муар

1.6 Цифрова обробка зображень

1.7 Лініатура растру

1.8 Основні характеристики зображення

1.8.1 Кількість пікселів

1.8.2 Глибина кольору

1.8.3 Колір

1.8.3.1 Яскравість

1.8.3.2 Насиченість

1.8.3.3 Світлота

1.8.3.4 Тон

1.8.4. Червоний, зелений, синій - RGB

1.8.5. Чотириколірна автотипія - CMYK

1.8.6. CIE XYZ - лінійна 3-компонентна колірна модель

1.9 Використання півтонових зображень

2. Опис алгоритму роботи програми

2.1 Актуальність завдання апроксимації півтонового зображення

2.2 Алгоритм усікання по порогу

2.3. Алгоритм упорядкованого розмиття

2.4 Алгоритм розсіювання помилок Флойда-Стейнберга

3. Розробка системи обробки растрових зображень та їх псевдо тонування

3.1 Загальна структура програмного забезпечення, що розробляється

3.1.1 Програмна система

3.1.2 Основній модуль

3.2 Розробка інтерфейсу користувача

3.2.1 Розробка інтерфейсу головного модуля

3.2.2 Клас «ImageProcessingFrame»

3.2.2.1 Меню

3.2.2.2 Елементи вікна фрейму

3.3 Розробка головних модулів

3.4 Вигляд результату

3.5 Експериментальне дослідження

3.5.1 Перший алгоритм

3.5.2. Другий алгоритм

3.5.3. Третій алгоритм

4. Економічний розрахунок проекту

4.1 Техніко-економічна характеристика проекту й обраного аналога

4.2 Організаційне забезпечення проекту

4.3 Розрахунок показників економічної ефективності проекту

4.3.1 Розрахунок одноразових витрат на проект

4.3.2 Розрахунок поточних витрат

4.3.3 Розрахунок накладних витрат

4.3.4 Розрахунок інших комерційних витрат

4.3.5 Загальний розрахунок

4.4 Визначення вихідної ціни товару

4.4.1 Витратний метод

4.5 Техніко-економічні показники проекту

5. Обґрунтування показників охорони праці при роботі в приміщенні

5.1 Аналіз ймовірних небезпечних факторів

5.2 Розробка заходів для усунення небезпечних факторів

5.3 Розрахунок потрібного повітрообміну у робочому приміщенні

Висновок

Перелік літератури

Додаток А. Лістинг розробленого програмного забезпечення

ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ

CMYK - Cyan Magenta Yellow Key - модель.

LPI - Lines per inch.

RGB - Red Green Blue - модель.

ЖК - жидкокристалічний монітор.

LCD - Liquid-crystal display.

ЕЛТ- монітори з електроно-лучовою трубкою.

HDR(HDRI) - high dynamic range imaging

TFT - thin film transistor.

LED - light-emitting diode.

HSL - Hue(тон), Saturation(насиченість), Lightness (Intensity -- світлота).

HSV - Hue, Saturation, Value - тон, насиченість, значення.

HSB - Hue, Saturation, Brightness - відтінок, насиченість, яскравість.

CIE XYZ - International Commision on Illumination, CIE standart observer, лінійна 3-компонентна колірна модель, що грунтується на результатах вимірювання характеристик людського ока.

ВСТУП

Як правило, чим більше пікселів на екрані, тим вище якість зображення. Часто користувач поставлений перед вибором: більше кольорів або вище дозвіл. Якщо на екрані потрібно отримати зображення фотографічної якості, то важливіше (і це може показатися дивним) відтінки.

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

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

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

Псевдотонування створює ілюзію того, що зображення містить більше кольорів, ніж насправді, і так виконується дифузне псевдотонування. Дифузне псевдотонування поширює колірну помилку - різницю між фактичним кольором пікселя і бажаним, на всі пікселі так, щоб сумарна колірна помилка була нульовою для всього зображення.

1. ЗАГАЛЬНІ ВІДОМОСТІ ПРО СКЛАД ЗОБРАЖЕННЯ ТА ЙОГО ОБРОБКУ

1.1 Склад зображення

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

Рис 1.1 Загальний вигляд зображення

Растр - точкова структура графічного зображення при поліграфічному і цифровому друці. Із-за властивості різних методів друку, так що в кожній точці листа можна нанести фарбу або не наносити її, для друку кожне графічне зображення повинне бути перетворене в сукупність крапок. Ці крапки, зливаючись на відстані, створюють відчуття колірних переходів.

1.2 Регулярний растр

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

Рис. 1.2 Види регулярних растрів

1.3 Стохастичний растр

Стохастичний (нерегулярний) растр в корені відрізняється від описаного вище регулярного растру. Зображення формується з хаотичним чином розкиданих точок одного розміру. Растр можна називати частотно-модульованим. Муарова картина на стохастичних растрах значно менш контрастна порівняно з муаром на регулярних растрах (унаслідок малого діаметру растрових елементів). Поняття «лініатура», «форма крапки» в стохастиці не мають сенсу (хоча поняття лініатури і квазіперіоду умовно вводяться і для нерегулярних растрів). До недоліків стохастичного растру можна віднести чутливість процесу до якості виготовлення форм і складність друку.

1.4 Кут повороту растру

Кут повороту растру - це набір кутів, під якими розташовуються один до одного лінії з точок растру.

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

Рис. 1.3 Кут повороту растру зображення

1.5 Муар

Для чорно-білого друку як правило використовується кут в 45°. У традиційній технології репродукції кольороподілені зображення для трьох хроматичних фарб (RGB) розгорнені один до одного на 30 градусів. Для кольорового друку в системі CMYK характерні наступні кути повороту растру: для кольору cyan використовується поворот в 15° або 105°, для кольору magenta - 75° або 15°, для кольору yellow - 0° або 90°, для кольору black - 45° або 135°.

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

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

Рис 1.4 Поява муару при накладенні двох лінійних решіток

Модулю різниці періодів ґрат і пропадає, тому що не може бути реалізована при заданому дозволі сканування.

При друці будь-яким набором фарб найбільш інтенсивна (темна) фарба, яка має на великій площі значення від 30 до 70 % може давати муар. Тобто якщо у нас на CMYK фотографії чорний канал не домінує (<10-15%) те вірогідність виникнення помітного оком муару мінімальна. Таким чином можна майже не звертати увагу на жовтий канал CMYK фотографії. Кут повороту растру між самими проблемними каналами повинен бути якомога ближче до 45°.

При друці «плашками» (тобто із заповненням >95 %) поняття «Кут нахилу растру» практично зникає (навіть якщо мова йде про фотографії).

1.6 Цифрова обробка зображень

Ще в середині XX століття обробка зображень була здебільшого аналоговою і виконувалася оптичними пристроями. Подібні оптичні методи до цих пір важливі, в таких областях як, наприклад, голографія. Проте, з різким зростанням продуктивності комп'ютерів, ці методи всі більшою мірою витіснялися методами цифрової обробки зображень. Методи цифрової обробки зображень зазвичай є точнішими, надійнішими, гнучкішими і простішими в реалізації, ніж аналогові методи. У цифровій обробці зображень застосовується устаткування, таке як процесори з конвеєрною обробкою інструкцій і багатопроцесорні системи.

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

1.7 Лініатура растру

Лініатура растру є одній з основних характеристик друку, характеризує період сітки і позначає кількість ліній растру на одиницю довжини зображення. Частіше всього лініатура вимірюється в лініях на дюйм - lpi; вимірюється також в лініях на сантиметр. Характеристики співпадають з характеристиками одновимірних дифракційних грат; L = 1/p, де р - період структури растру. Чим вище лініатура, тим більше дрібні деталі можна відтворити, проте існують фізичні обмеження на лініатуру.

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

Для газетного друку, як правило, використовується лініатура в 100-133 lpi. Для кольорових журналів приблизно 150-175 lpi. Для ікон приблизно 200 lpi.

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

1.8 Основні характеристики зображення

Найбільш важливими характеристиками зображення є:

- кількість пікселів. Може указуватися окремо кількість пікселів по ширині і висоті (1024*768, 640*480...) або ж, рідко, загальна кількість пікселів (часто вимірюється в мегапікселях);

- кількість використовуваних кольорів або глибина кольору (ці характеристики мають наступну залежність: N = 2I, де N - кількість кольорів, а I - глибина кольору);

- колірний простір (колірна модель) RGB, CMYK, XYZ та ін.

1.8.1 Кількість пікселів може указуватися окремо кількість пікселів по ширині і висоті (1024*768, 640*480...) або ж, рідко, загальна кількість пікселів (часто вимірюється в мегапікселях); Відповідно чим більше кількість пікселів в зображенні, тим краще його якість.

Піксел (у розмовній мові піксель, іноді пэл, англ. pixel, pel - скорочення від picture element або picture сell - елемент зображення) або элиз (рідкозастосовуваний російський варіант терміну) - найменший логічний елемент двовимірного цифрового зображення в растровій графіці. Піксел є неподільний об'єкт прямокутною, зазвичай квадратною, або круглої форми, що володіє певним кольором. Растрове комп'ютерне зображення складається з пікселів, розташованих по рядках і стовпцях.

Фрагмент матриці ЖК монітора (0,78 х 0,78 мм), збільшений в 46 разів

1.8.2 Глибина кольору (якість перенесення кольорів, бітність зображення) - це термін комп'ютерної графіки, що означає кількість бітів, використовуваних для представлення кольору при кодуванні одного піксела растрової графіки або відео. Це поняття також відоме, як bits per pixel (bpp) задаюча точна кількість використовуваних біт для представлення кольору.

Рис. 1.5

«Реальні» кольори. Із збільшенням кількості бітний в представленні кольору, кількість кольорів, що відображаються, почала ставати непрактично-большим для колірних палітр (20-бітова глибина кольору вимагає більше пам'яті для збереження колірної палітри, чим пам'яті для збереження самих пікселів зображення). При великій глибині кольору на практиці зазвичай кодують яскравості червоною, зеленою і синій складових - таке кодування зазвичай називають RGB-моделью.

8-бітовий «реальний» колір. Сильно обмежена, проте «реальна» колірна схема, в якій 3 біта (8 можливих значень) для червоної (R) і зеленої (G) складових, і два що залишилися біта на піксель для кодування сині (B) складовою (4 можливих значення), дозволяють представити 256 (8 х 8 х 4) різних кольори. Нормальне людське око менш чутливе до сині складової,

24-бітовий Truecolor-колір використовує по 8 бітний для уявлення червоною, синій і зеленою складових, 28 = 256 різних варіанту представлення кольору для кожного каналу, або всього 16 777 216 кольрів (256 х 256 х 256). 24-bit колір згадується як «мільйони кольорів» («millions of colors») в системах Macintosh.

Види зображень відповідно до глибини кольору

Рис. 1.6

32-бітовий «реальний» колір. 32-бітовий колір це приклад неправильного вживання терміну при описі глибини кольору. Помилкою є те, що 32-бітовий колір дозволяє представити 4 294 967 296 різних відтінків.

У реальності 32-бітовий колір є 24-бітовим (Truecolor) з додатковим 8-бітовим каналом, який або заповнений нулями (порожнечею), або представляє альфа-канал, який задає прозорість зображення в певних пікселях.

У комп'ютерній графіці альфа-композиція позначає процес комбінування зображення з фоном з метою створення ефекту часткової прозорості. Цей метод часто застосовується для багатопрохідної обробки зображення по частинах з подальшою комбінацією цих частин в єдине двовимірне результуюче зображення.

Термін альфа-канал вперше введений в обіг Алві Смітом в кінці 1970-х і детально пропрацював в статті Томаса Портера і Тома Даффа 1984 року.

Приклад роботи альфа-композитних операторів over, in, out, atop і xor

Рис. 1.7 Середні нормалізовані спектральні характеристики

Рис. 1.8

Рисунок 1.8 ілюструє чутливість колірних рецепторів людини - колб. Пунктиром вказана чутливість паличок - рецепторів смеркового зору. Вісь довжин хвиль на графіці має логарифмічний масштаб

Суб'єктивно сприйманий зором колір випромінювання залежить від його спектру, від психофізіологічного стану людини (впливають: фонове світло/колір, його колірна температура; зорова адаптація), і від специфічних властивостей індивідуального ока (дальтонізм).

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

Неоднозначність поняття «колір». Яскравість на червоному, зеленому і синьому прямокутниках під спектром показують відносну інтенсивність відчуття на кожному з трьох незалежних типів рецепторів людського зору - колб.

Поняття «колір» має 2 сенси: воно може відноситися як до психологічного відчуття, викликаного віддзеркаленням світла від якогось об'єкту (оранжевий апельсин), так і бути однозначною характеристикою самих джерел світла (оранжеве світло). Тому слід відмітити, що в тих дифракційних гратах. Хорошою демонстрацією спектру є природне явище веселки.

Вперше безперервний спектр на сім кольорів розбив Ісаак Ньютон. Це розбиття умовне і багато в чому випадково. Швидше за все, Ньютон знаходився під дією європейської нумерологии і грунтувався на аналогії з сім'ю нотами в октаві (порівняєте: 7 металів, 7 планет.), що і послужило причиною виділення саме семи кольорів. У XX столітті Освальд Вірт запропонував «октавну» систему (ввів 2 зелених - холодний, морський і теплий, трав'яний), але великого розповсюдження вона не знайшла.

Рис. 1.9 Плавний перехід кольорів

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

Аддитивне змішення кольорів - метод синтезу кольору, заснований на складанні аддитивних кольорів, тобто кольорів безпосередньо випромінюючих об'єктів. Метод заснований на особливостях будови зорового аналізатора людини, зокрема на такому явищі як метамерія.

Рис. 1.10 Аддитивне змішення кольорів

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

Один з прикладів використання аддитивного синтезу - комп'ютерний монітор, кольорове зображення на якому засноване на колірному просторі RGB і виходить з червоних, зелених і синіх крапок.

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

У Англії основними квітами довго вважали червоний, жовтий і синій, лише в 1860 р. Максвел ввів аддитивну систему RGB (червоний, зелений, синій). Ця система в даний час домінує в системах цветовоспроизведения для електронно-променевих трубок (ЕЛТ) моніторів і телевізорів.

У 1931 CIE розробила колірну систему XYZ, звану також «нормальна колірна система».

Створити "свої" люмінофори (випромінювачі) і те, що кожен монітор настроюється індивідуально, і два що однаково відображають кольори не може бути за визначенням, відзначимо так-же, що з часом люмінофори вицвітають, а випромінювачі деградують (причому кожен по своєму). Тому створення "цифрового" каталога кольорів, комп'ютера, що відображається на екрані, мабуть не має практичного сенсу.

Основні і додаткові кольори. Поняття «додатковий колір» було введене по аналогії з «основним кольором». Було встановлено, що оптичне змішення деяких пар кольорів може давати відчуття білого кольору. Так, до тріади основних кольорів Червоний-Зелений-синій додатковими є Блакитний-Пурпурний-жовтий - кольори. На колірному крузі ці кольори розташовують опозиційно, так що кольори обох тріад чергуються. У поліграфічній практиці як основні квіти використовують різні набори «основних кольорів».

Рис. 1.11 Кольори спектру і основні кольори

Мнемоніка для кольорів спектру і веселки:

- «Каждый Охотник Желает Знать Где Сидит Фазан»;

- «Как Однажды Жак-Звонарь Головою Сшиб Фонарь» (варіанти: «Головой Сломал Фонарь, Головной Сломал Фонарь»).

Saturation, Brightness - відтінок, насиченість, яскравість). Насиченість (колірна насиченість, chroma) в колірних просторах CIE 1976 Lab і Luv є неформалізованою величиною, використовуваною в представленні CIE LCН (lightness (светлота), chroma (хром, насиченість), hue (тон)).

У колірному просторі HSV протистоячі кольори є додатковими, при змішуванні вони дають відтінки сірого

Простий спосіб відобразити HSV в тривимірний простір - скористатися циліндровою системою координат. Тут координата H визначається полярним кутом, S - радіус-вектором, а V - Z-координатою.

Рис. 1.12 Тривимірна візуалізація простору HSV

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

Сприймається людиною як біла. Також можна визначити як ступінь близькості кольору до білого.

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

1.8.3 Тон (hue) - одна з трьох основних характеристик кольору разом з насиченістю і світлотою. Тон визначається характером розподілу випромінювання в спектрі видимого світла, причому, головним чином, положенням піку випромінювання, а не його інтенсивністю і характером розподілу випромінювання в інших областях спектру. Саме тон визначає назва кольору, наприклад «червоний», «синій», «зелений».

Рис. 1.13 Шкала тону для кольорів

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

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

Рис. 1.14 RGB-кольорова модель представлена у вигляді куба

1.8.4 Червоний, зелений, синій - RGB (абревіатура англійських слів Red, Green, Blue - червоний, зелений, синій) - аддитивна колірна модель, що як правило описує спосіб синтезу кольору для цветовоспроизведения. У російській традиції іноді позначається як КЗС.

Вибір основних кольорів обумовлений особливостями фізіології сприйняття кольору сітківкою людського ока. Колірна модель RGB знайшла широке застосування в техніці.

Аддитивною вона називається тому, що кольори виходять шляхом додавання (англ. addition) до чорного. Інакше кажучи, якщо колір екрану, освітленого кольоровим прожектором, позначається в RGB як (r1, g1, b1), а колір того ж екрану, освітленого іншим прожектором, - (r2, g2, b2), то при освітленні двома прожекторами колір екрану позначатиметься як (r1+r2, g1+g2, b1+b2).

Зображення в даній колірній моделі складається з трьох каналів. При змішенні основних кольорів (основними кольорами вважаються червоний, зелений і синій) - наприклад, синього (B) і червоного (R), ми отримуємо пурпурний (M magenta), при змішенні зеленого (G) і червоного (R) - жовтий (Y yellow), при змішенні зеленого (G) і синього (B) - цианістий (З cyan). При змішенні всіх трьох колірних компонентів ми отримуємо білий колір (W).

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

1.8.5 Чотириколірна автотипія (CMYK: Cyan, Magenta, Yellow, Key color) - субтрактивна схема формування кольору, використовувана перш за все в поліграфії для стандартного триадного друку. Схема CMYK, як правило, володіє порівняно невеликим колірним обхватом кольорів (color-matching functions) і універсальний колірний простір (universal color space), в якому був представлений діапазон видимих кольорів, характерний для середньостатистичної людини.

Рис. 1.15. Схема субтрактивного синтезу в CMYK

Функції відповідності кольорів - це значення кожної первинної складової світла - червоною, зеленою і синій, які повинні бути присутніми, щоб людина з середнім зором могла сприймати всі кольори видимого спектру. Цим трьом первинним складовим були поставлені у відповідність координати X, Y і Z.

Рис. 1.16 Функції чутливості XYZ для стандартного спостерігача згідно CIE 1931, в діапазоні від 380 до 780 нм (з кроком 5 нм)

Основна властивість, властива цій системі, - позитивна визначеність - будь-який фізично відчутний колір представляється в системі XYZ тільки позитивними величинами.

Кажучи про «еталонні» відтінки, часто говорять тільки про пару x, у, рахуючи z = 1-x-y.

Кажучи про «яскравість» кольору (наприклад, для перекладу зображення в чорно-біле), часто мають на увазі величину Y.

2. Опис алгоритму роботи програми

2.1 Актуальність завдання апроксимації півтонового зображення

Як перший етап перетворення кольорового зображення в півтонове використовується завдання апроксимації півтонового зображення дворівневим (Апроксимація, або наближення - науковий метод, що полягає в заміні одних об'єктів іншими, в тому або іншому сенсі близькими до початкових, але простішими. Апроксимація дозволяє досліджувати числові характеристики і якісні властивості об'єкту, зводячи завдання до вивчення простіших або зручніших об'єктів (наприклад, таких, характеристики яких легко обчислюються, або властивості яких вже відомі). У теорії чисел вивчаються діофантові наближення, зокрема, наближення ірраціональних чисел раціональними. У геометрії розглядаються апроксимації кривих ламаними. Деякі розділи математики по суті цілком присвячені апроксимації, наприклад, теорія наближення функцій, чисельні методи аналізу. У переносному розумінні уживається у філософії як метод наближення, вказівку на приблизний, неостаточний характер. Наприклад, в такому сенсі термін «апроксимація» активно уживався Сереном Кєркегором (1813-1855) в «Завершальній ненауковій післямові»)

Зазвичай зображення, що зберігаються в цифровому вигляді, представляються як масив із значень атрибутів; при цьому для представлення повнокольорових фотографій використовується діапазон з 256 значень на кожен атрибут. Але часто кількість ті, що виводяться пристроєм відтінків, що відображає, обмежено всього декількома значеннями інтенсивності. Такі пристрої зовсім не рідкісні: чорно-білі і кольорові принтери, інформаційні дисплеї, промислове поліграфічне устаткування і так далі

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

Основна ідея полягає в тому, що якщо правильно чергувати крапки, що приймають обмежену кількість атрибутів, починаючи з певної відстані, людина перестає розрізняти крапки окремо. Замість цього виникне картина усереднювання значень атрибутів ілюзія великої кількості відтінків. Для прикладу можна розглянути збільшений газетний знімок (див. рис. 2.2).

Існує підхід, коли просторовий дозвіл приносять в жертву візуальному. Якщо число відтінків, що виводяться, рівне 2, то область розміром 2x2 пікселя може апроксимувати 5 значень атрибутів (див. рис. 2.1). Загальне правило для чорно-білих пристроїв таке: область пікселів розміром nхn дозволяє апроксимувати n2+1 значень атрибутів. Проте втрати в просторовому дозволі часто недопустимі, плюс до того, щоб добитися прийнятної кількості відтінків, доведеться зменшити просторовий дозвіл в 7-10 разів, що дає 50-101 відтінків сірого.

Рис. 2.1 Шаблон для наближення 5 значень інтенсивності

Рис. 2.2 Збільшений газетний знімок

Алгоритм усікання по порогу

Найпростіший алгоритм - це усікання по порогу. Поріг зазвичай вибирається рівним половині максимального значення інтенсивності. Але це також залежить від кількості і співвідношення темних і світлих пікселів.

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

Лістинг 2.1 Алгоритм псевдотонування - усікання по порогу

for (int i = 0; i < width; i++)

for (int j = 0; j < height; j++) {

raster.getPixel(i, j, sample);

if (sample[0] > threshold) {

sample[0] = 255; }

else { sample[0] = 0; }

raster.setPixel(i, j, sample); }

Початкове зображення має наступний вигляд:

Рис 2.3 Початкове півтонове зображення

Результат роботи алгоритма - чорно-біле зображення :

Рис. 2.4 Результат роботи алгоритму усікання по порогу

Як видно з рис. 2.4, метод має явно виражений недолік - втрачаються дуже багато деталей.

2.3 Алгоритм упорядкованого розмиття

Очевидно, що метод, розглянутий в 2.2, вимагає поліпшень. Можна спеціально додати в початкове зображення шум. Якщо додавати довільний шум, то результати алгоритму не можна вважати задовільними.

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

Спочатку початкове зображення розбивається на квадратні області розміром N*N, співпадаючі з розмірністю матриці розмиття, потім до кожного квадрата застосовується алгоритм впорядкованого розмиття, де як поріг вибирається відповідне значення з матриці, і це значення з матриці порівнюється із значенням пікселя зображення. Як результат установка пікселя зображення в чорний колір, якщо значення в матриці більше значення пікселя зображення, інакше - білий колір.

Для випадку 2 х 2 оптимальною є наступна матриця:

int[] matrix2 =

{ 0, 2, 3, 1 };

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

int[] matrix =

{ 4*D n/2, 4*D n/2 + 2U n/2, 4*D n/2 + 3U n/2, 4*D n/2 + U n/2 }; ,

де int[] U = { 1, ……, 1, … 1},

матриця, що складається з одиниць розміром n Ч n. Наприклад, матриця розміром 4Ч4 буде мати наступний вигляд:

int[] matrix4 = { 0, 8, 2, 10,

12, 4, 14, 6,

3, 11, 1, 9, 15,

7, 13, 5 };

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

Нижче приводиться псевдокод алгоритму:

Лістинг 2.2. Алгоритм псевдотонування - упорядковане розмиття

for (int i = 0; i < width; i++)

for (int j = 0; j < height; j++) {

int mi; int mj; int[] sample = new int[1];

raster.getPixel(i, j, sample);

mi = j % size; mj = i % size;

if(sample[0]>matrix32[mi*size+mj]){sample[0] = 255;

} else { sample[0] = 0; }

Як бачимо з рис. 2.5 результатів роботи даного алгоритму набагато краще, ніж описаного в розділі 2.2., - зображення виглядає детальніше

2.4 Алгоритм розсіювання помилок Флойда-Стейнберга

Даний метод також є модифікацією алгоритму усікання по порогу, розглянутого в розділі 2.2. Ідея полягає в розподілі помилки, що виникла при апроксимації даного пікселя, на сусідні пікселі. Існують різні варіанти розподілу помилки на сусідні пікселі. Приведемо той варіант, який використовує всі доступні безпосередні сусідні пікселі в 8-зв'язному сенсі і є оптимальним. Здійснюється прохід зображення зверху вниз, зліва направо і застосовується усікання по порогу; при цьому помилка розподіляється таким чином (див. рис. 2.6): до значення атрибуту пікселя справа додається 7/16 помилки, справа внизу додається 1/16 помилки, внизу додається 5/16 помилки, зліва внизу додається 3/16 помилки. А потім значення кожного вищенаведеного пікселю і його навколишніх пікселів встановлюється в білий колір і його похідні, за допомогою множення на відповідну константу, якщо значення пікселя перевищує значення порогу, в останніх випадках значення пікселя встановлюється в чорний колір і його похідні.

Рис. 2.6 Розподіл помилки

Лістинг 2.3 Алгоритм псевдотонування - розсіювання помилок Флойда-Стейнберга

// прохід по пікселях строго справа наліво, зверху вниз

for (int j = 0; j < height - 1; j += 2)

for (int i = width - 2; i >= 1; i -= 3)

{

sample_right[0] = 0; // піксель справа,

sample_down_right[0] = 0; // піксель справа знизу

sample_down[0] = 0; // піксель знизу

sample_down_left[0] = 0; // піксель зліва знизу

int[] sampleG = new int[1];

Color c = new Color(sample[0]);

raster.getPixel(i, j, sample);

if (sample[0] > threshold) {

sample_old[0] = sample[0]; sample[0] = 255;

error[0] = (sample_old[0] - sample[0]);

} else { sample_old[0] = sample[0];

sample[0] = 0; error[0] =(sample_old[0] - sample[0

}

sample_right[0] +=7/16*error[0]; sample_down_right[0] += 1/16 * error[0];

sample_down[0] +=5/16 * error[0]; sample_down_left[0] += 3/16* error[0];

raster.setPixel(i, j, sample);

raster.setPixel(i + 1, j, sample_right);

raster.setPixel(i + 1, j + 1, sample_down_right);

raster.setPixel(i, j + 1, sample_down);

raster.setPixel(i - 1, j + 1, sample_down_left); }

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

У результаті роботи алгоритму розсіювання помилок отримаємо:

Рис. 2.7 Алгоритм Флойда-Стейнберга

Приклад роботи алгоритму можно побачити на рис. 2.7. Бачимо, що метод зберігає маленькі деталі, у порівнянні з вищеописаним у розділі 2.2. Якщо порівняти з методом з розділу 2.3, зображення стало темніше. У результаті можна сказати, що ефект періодичності практично зник. Та змін, що корегують зображення. Для виконання таких дій, модуль візуалізації отримує результати від основного модулю та, відповідно до змін в основному модулі, робить зміни у візуальному. При цьому достатнім може бути зображення будь-якого розміру.

растровий зображення колір псевдотонування

3. РОЗРОБКА СИСТЕМИ ОБРОБКИ РАСТРОВИХ ЗОБРАЖЕНЬ ТА ЇХ ПСЕВДОТОНУВАННЯ

3.1 Загальна структура програмного забезпечення, що розробляється

3.1.1 Програмна система

3.1.2 Основній модуль

3.2 Розробка інтерфейсу користувача

3.2.1 Розробка інтерфейсу головного модуля. Інтерфейс головного модуля повинен забезпечувати наступні функціональні можливості:

- вибір та редагування зображення;

- збереження зображення до чи після обробки на носії інформації та завантаження його з цього носія;

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

- можливість зміни значення порогу під впливом якого змінюється яскравість обробленого зображення;

- відображення змін у зображенні під час його обробки.

Для обробки програми основного модулю, а також для вводу в неї даних та їх редагування пропонується застосовувати стандартний візуальний компонент, а саме середовище розробки IntelliJ IDEA 8.* або NetBeans IDE 6.7 для операційних систем з родини Windows або Linux відповідно.

Сама програма складається з трьох класів(ImageChange, ImagePanel, ImageProcessingFrame), кожен з яких виконує свої функції, що разом роблять можливим правильне функціонування програми.

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

Клас «ImageChange» являє собою основний елемент для функціонування программи. В ньому знаходиться метод «public void run()», тобто запуск всієї програми, а також створення нового класу - фрейму для візуального відображення вікна, завдяки функції «JFrame frame = new ImageProcessingFrame();», що також являє собою посилання на клас з відповідним ім`ям, також треба урахувати операцію, що виконується по умовчанню «frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);» над чим фреймом та операції «frame.setVisible(true);» яка робить вікно програми видимим для подальшої роботи з ним.

Клас «ImagePanel» який включає суперклас JPanel дозволяє зробити масштаб зображення, це насамперед стосується зображень великих розмірів відповідно до маленького розміру картинки, що формує засіб відображення інформації(монітор, екран або проекція). Цей клас спочатку формує масштабній коефіцієнт по вертикалі «double yScale = 1;» та по горизонталі «double xScale = 1;». Функція «private void recalcScale()» виконуємо масштабування відповідно до розміру первісного зображення з допомогою змінної «xScale = (double) this.getWidth()/image.getWidth();» для горизонталі та вертикалі:

yScale=(double)this.getHeight()/image.getHeight();

Після цього зображення замість первісного розміру має розмір, відповідно до розміру засоба відображення інформації завдяки методу public void setImage(BufferedImage image), що виконує повторне малювання зображення зі зміненим розміром, а функція «public BufferedImage getImage()» вертає змінене зображення на місце початкового. Для розрахунку кількості пікселей зображення використовується функція «public int getPixelCount()», для розрахунку числа пікселів майбутнього зображення,

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

«fileMenu.add(saveMenu);»,fileMenu.addSeparator();»,

«fileMenu.addSeparator();»

- меню «Вихід» починається зі створення елементу та встановлення для нього відповідної комбінації літер:

«JMenuItem exitItem=new JMenuItem("Exit");»,

«exitItem.setAccelerator(KeyStroke.getKeyStroke("ctrl E"));».

Далі виконується додавання дії до цього елементу меню, що являє собою вихід із програми з подальшим закриттям всього вікна

exitItem.addActionListener(

new ActionListener(){public void actionPerformed(ActionEvent event) {

System.exit(0); }}

);»,

а також додавання елементу виходу до панелі меню «Файл» -

«fileMenu.add(exitItem);».

3.2.2.2 Елементи вікна фрейму. В якості наступного кроку виконується додавання панелі кнопок, що допомогає розмістити всі кнопки разом та являє собою більш універсальний метод, аніж додавання кожної кнопки окремо, без панелі. А також додавання решітки з 6 строками та одним стовпцем, встановлення відступу між кнопками, що допомогає трошки розділити їх візуально по горизонталі та вертикалі на певну відстань. Далі додаємо кнопки на панель поряд із раніше вибраним зображенням. Для першої кнопки це виконується наступним чином -

«JButton button1 = new JButton("Make_Gray");».

Ця дія по суті являє собою створення кнопки, що існує взагалі у системі на нашому фреймі вікна. Також виконується додавання літери для керування цією кнопкою - «button1.setMnemonic('r');», тобто це можливість керувати програмою лише з клавіатури та додавання кнопки на загальну панель кнопок - «buttonPanel.add(button1);». Також для кнопки додатково є опис, відповідаючий найкращим чином змісту дій, що вона виконує. Цей опис являє собою будь-який текст, що з'являється під час наведення курсору миші на зображення кнопки - «button1.setToolTipText("Make a Gray Image from Color Image");». Друга кнопка «Change_Pixel» додається завдяки тим же діям, що й перша, але встановлюється інша літера(button2.setMnemonic('p');) для її виклику з клавіатури, інший текст опису ( button2.setToolTipText ("Make a Changing of Pixels of Image"); ) та до кнопки прикріплюється інша дія, що являє собою зміну значень частини пікселів зображення на будь-яку величину, що наглядно демонструє який вплив дає зміна пікселів на загальний вид зображення і що завдяки цим діям можливо виконати будь-яку зміну у зображенні, що призведе до його покращення чи погіршення, відповідно до дій користувача. Третя кнопка додається таким же чином, як і дві попередні, вона має іншу назву

JButton button3= new JButton("Simple_Aproximation_of_semtons"), керуючу літеру (button3.setMnemonic('1');

та спливаючий опис(button3.setToolTipText("Make a Simple Aproximation from Gray Image");). Кнопка виконує іншу дію, а саме простий алгоритм апроксимації полутонів, тобто зміну вигляду зображення, завдяки пороговому зрізу у напрямку білого чи чорного кольору, в залежності від того, більше чи менше значення пікселя, аніж деякий поріг, що задає користувач програми за допомогою зміні положення повзунка чи простого запису числа, що відповідає рівню порогу у віконце. Потім створюємо повзунок(JSlider slider = new JSlider(0, 255);) та віконце для цифри(textField = new JTextField(5);) з певним розміром, а його панелі додаються до панелі кнопок так само як і звичайні кнопки(sliderPanel.add(textField); buttonPanel.add(sliderPanel);), і на повзунок також ставиться спливаюча підказка, що формується тим же чином, як і для кнопок(slider.setToolTipText("Choose a Level of Dithering");). Четверта кнопка додається до панелі кнопок як і інші, та для неї формується літера бистрого виклику(button4.setMnemonic('2');) та опис(button4.setToolTipText("Make a Diffusion from Gray Image");) так само, як і для інших кнопок. Ця кнопка виконує алгоритм упорядкованого розмиття пікселів зображення. Ця дія виконується завдяки порівнянню кожного пікселю у деякій області(обхід зображення виконується по всім пікселям, але великими кроками, створюючи рівносторонні області ) з елементом матриці того ж розміру, що й область, яка також має той же індекс у матриці, що й піксель у області зображення. Кнопки вибору створюються для кожного варіанту розміру матриці: (group=new ButtonGroup();addRadioButton("The Size of Matrix is 4",4);). Розмір якої може бути 4, 8, 16, 32. Що може бути Може бути вибрана тільки одна з кнопок в один момент часу, а після вибору, у якості підтвердження треба натиснути попередньо вказану кнопку.

Якщо провести візуальне дослідження, то можна побачити, що кожен ранг матриці дає свій вплив на якість зображення.Остання п'ята кнопка додається тим ж чином, що й вищезазначені, опис та літера керування формується також однаково з іншими кнопками. Також у кінці виконується додавання вже сформованої панелі з усіма кнопками на панель фрейму вікна, що відображає інтерфейс користувача. Кнопка виконує дію, що являє собою алгоритм розсівання помилок Флойда-Стейнберга. У кінці конструктору вказується список змінних, що мають приватний доступ, тобто тільки для методів цього класу, найголовніші з яких - «private static final int WIDTH = 600»; - встановлення ширини вікна інтерфейсу користувача та «private static final int HEIGHT = 600;» - встановлення висоти вікна інтерфейсу користувача, ці значення залежать також від розміру відповідного монітору користувача, але, зважаючи на те що зображення масштабуєть, то ці розміри будуть компактними для більшої кількості моніторів.3.3 Розробка головних модулів

У цьому розділі описані дії, що виконуються завдяки натисканню кнопок чи вибору їх конпками з клавіатури.Перша кнопка «Make_Gray». Перетворення кольорового зображення на зображення з відтінками сірого. Ця дія виконується завдяки додаванню до кнопки дії по перетворенню зображення, виклику функції з відповідними діями та заміни вигляду вибраного зображення на оброблене. Спочатку при натисканні виконується виклик функції «gray_Pixel(image.getWidth(), image.getHeight());», що приймає та потім використовує такі параметри зображення як довжину та ширину. У пам'яті створюється нове пусте зображення з відтінками сірого - пікселю ітерації та його околу з певним коефіцієнтом у відповідності до його положення:

«sample_right[0] += 7/16 * error[0]; sample_down_right[0] += 1/16 *

error[0];

sample_down[0] += 5/16 * error[0]; sample_down_left[0] += 3/16 *

error[0];».

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

3.4 Вигляд результату. Остаточно ми отримаємо вікно що має наступний вигляд:

Рис. 3.1 Загальний вигляд інтерфейсу користувача

Щоб почати працювати з програмою потрібно спочатку вибрати зображення, яке буде підлягати обробці, це робиться за допомогою вибору елементу меню “File”, а потім і виконується цей вибір. Після цього потрібно перетворити кольорове(якщо таке вибрали одразу) зображення на зображення з відтінками сірого. Тепер ми можеми використовувати один з трьох алгоритмів обробки зображення, що відповідають кнопкам меню. А також ми можемо зберегти ще не оброблене зображення для подальшого використання та обробки у будь-якому форматі з нині існуючих. Цю дію можна зробити у будь-який момент роботи з програмою.

Щоб перевірити чи можливо взагалі провести зміну значень пікселів зображення потрібно вибрати кнопку “Change_Pixel”. Як результат - половина пікселів зображення змінить своє значення.

Для того, щоб виконати алгоритм усікання по порогу достатньо при відкритому зображенні з відтінками сірого вибрати кнопку “Simple_Aproximation_of_Semitons”, але перед чим обов'язково треба задати за допомогою повзунка чи запису у віконце рівень порогу для обробки чим алгоритмом.

Алгоритм ромиття помилки виконується вибором розрядності матриці розмиття - це чотири числа (4, 8, 16 або 32), що значно впливають на якість вихідного результату, а саме чорно-білого зображення, а після вибору слід вибрати кнопку “Error_Diffusion”.

Останній алгоритм розмиття Флойда-Стейнберга виконується завдяки вибору рівня порогу(так само як і у алгоритмі усікання по порогу) та вибору кнопки “Floyd-Steinberg_Dithering”.

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

Щоб закрити програму треба вибрати елемент меню “File” та потім елемент “Exit”. Всі елементи інтерфейсу можна вибирати за допомогою миші чи кнопками з клавіатури.

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

3.5 Експериментальне дослідження

Робота програми - завантаження зображення, обробкa та збереження. Обробка представляє зміну пік селів зображення одним з трьох алгоритмів. Спочатку беремо завантажуємо зображення якщо на вхід воно поступає кольорове, то його необхідно перетворити на зображення з відтінками сірого. Це й буде основний матеріал для подальшої обробки.

Як бачимо на рис. 3.2 у наслідок перетворення ми отримали зображення з відтінками сірого.

Рис. 3.2 Перетворення кольорового зображення на зображення з відтінками сірого

3.5.1 Перший алгоритм слугує для простої апроксимації полутонів зображення, тобто зміни, а саме це стосується пікселів, які після дії алгоритму замість значень 0-255 здобувають 0 або 1. Але перед тим як перетворювати необхідно вибрати поріг, значення якого може бути будь-яким числом між 0 та 255. Проведемо невелике дослідження і встановимо яким поріг найбільше підходить до цього зображення, тому що він залежить від кількості світла на зображенні і для іншого зображення потрібно вибирати інший поріг.

Проведемо 4 дослідження для різних рівней порогу.Візьмемо для початку значення порогу, що дорівнює 65. Ми отримаємо:

Перетворення кольорового зображення на чорно-біле зображення

Ми отримали чорно-біле зображення, якість якого дозволяє зрозуміти зміст першого, ми можемо побачити людей, що дивляться на судно та землю, але окремі деталі, наприклад елементи щогли видно погано, спробуємо інший поріг, а саме 130:

Рис. 3.3 Перетворення кольорового зображення на чорно-біле зображення (поріг дорівнює 65)

Рис. 3.4 Перетворення кольорового зображення на чорно-біле зображення (поріг дорівнює 130)

У випадку цього перетворення зміст зображення також можна зрозуміти - судно можна побачити відносно гарно, видно щогла, але людей видно погано, ті, що вдягнені у одяг темного кольору взагалі зникли та не дуже зрозуміло де взагалі це відбувається - на землі чи на морі і що роблять люди. Подальше збільшення порогу зробить зображення ще темнішим, відповідно і деталі будуть ще гіршими, тому є сенс шукати поріг між значеннями інтенсивності зображення з відтінками сірого, що відповідають 65 та 130, наприклад спробуємо значення 97:

Рис. 3.5 Перетворення кольорового зображення на чорно-біле зображення (поріг дорівнює 97)

Завдяки перетворенню ми отримали зображення, на якому можна зрозуміти сенс зображення, деякі його деталі, що є люди, але так само не видно людей у темному одязі, ми можемо вже абсолютно точно сказати що це судно, щогла судна видно дуже добре, але земля все ще залишається абсолютно чорною і не зрозуміло, наприклад, який рівень висоти вона має, чи це плитка, чи асфальт. У якості наступного кроку спробуємо ще зменшити рівень порогу до значення 80 та проаналізувати чи правильний діапазон ми вибрали для покрашення вигляду чорно-білого зображення:


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

  • Модель обробки файлів растрових зображень. Середній квадрат яскравості. Фільтри для виділення перепадів і границь. Опис та обґрунтування вибору складу технічних та програмних засобів. Опис інтерфейсу програми. Зображення діалогового вікна програми.

    курсовая работа [664,3 K], добавлен 30.06.2009

  • Історія розробки та розвитку комп'ютерного редактора, його основні функції. Порядок запуску Adobe Photoshop 7.0 та роботи з ним, опис його інтерфейсу та інструментів малювання. Алгоритм створення графічних зображень у програмі, формати їх збереження.

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

  • Загальна характеристика теорії редагування зображень, місце у ній растрових зображень. Аналіз переваг та недоліків програм малювання і векторної графіки. Структура, розмір і розширення зображення. Сутність і призначення основних форматів графічних файлів.

    реферат [1,1 M], добавлен 13.10.2010

  • Проектування програми керування мікропроцесорним пристроєм світлової індикації на мові С та Assembler. Розробка алгоритму роботи програми, структурної та електричної принципових схем. Здійснення комп’ютерного моделювання для перевірки розроблених програм.

    курсовая работа [710,7 K], добавлен 04.12.2014

  • Характеристика програмної взаємодії людини з комп'ютером. Визначення функціональних та експлуатаційних потреб при голосовому управлінні. Реалізація програмного забезпечення. Розробка тестів та тестування системи. Аналіз ефективності даної програми.

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

  • Класифікація об'єктно-орієнтованих мов програмування. Розробка алгоритмічного та програмного забезпечення комп'ютерної системи управління процесом випалювання будівельних матеріалів. Тестування програмного забезпечення, оцінка його ефективності.

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

  • Поняття трассировки та її значення в роботі комп'ютерного дизайнера. Розвиток інструментів трассировки в програмі Corel Drow. Способи та процеси векторної трассировки растрових зображень: автоматичне, ручне та утиліта, їх головні недоліки та привілеї.

    реферат [1,8 M], добавлен 30.05.2010

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

    дипломная работа [5,9 M], добавлен 24.04.2014

  • Основні функціональні можливості програми для забезпечення комп'ютерної системи дистанційного управління приладами. Функція пульта дистанційного керування мартфонів. Реалізація пультів дистанційного управління на основі апаратно-програмного комплексу.

    дипломная работа [1,7 M], добавлен 09.07.2015

  • Розробка та використання програми для пришвидшення процесу перетворення двомірного зображення у об'ємне. Методика та процес випробовування для виявлення та усунення недоліків в роботі програми. Інтерфейс програми, встановлення параметрів зображення.

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

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