Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/6290
Title: Обробка зображень у задачах комп'ютерного зору
Authors: Рудаков, Костянтин Сергійович
Ковіня, Дмитро Володимирович
Issue Date: Jun-2024
Abstract: Реалізовано алгоритми обробки зображення. Застосовано лінійні фільтри та складні фільтри обробки зображення, що включають в себе лінійну функцію, додавання шуму до зображення, виявлення краю зображення, подвійний точний лапласовий фільтр, гауссовий фільтр, лапласовий фільтр в цілісній програмі для виділення простих геометричних фігур на зображенні. Реалізований пошук кутів на зображенні за допомогою побудови сітки Вороного. Оглянуто вже готові рішення систем комп'ютерного зору, їхні переваги та недоліки. В ході аналізу були розглянуті такі системи, як Tesla Autopilot, John Deere's See & Spray та Google DeepMind's AI для діагностики очних захворювань. Було виявлено, що ці системи мають високу точність і ефективність у своїх специфічних галузях застосування, проте вони також характеризуються значними витратами на впровадження і обслуговування, а також можуть мати обмежену універсальність. У контексті розробленої системи, головною перевагою є її доступність та універсальність. Використання менш дорогих компонентів і оптимізація процесу обробки зображень дозволяють знизити загальні витрати, роблячи технологію доступнішою для широкого кола користувачів. Завдяки універсальності, система може бути адаптована до різних галузей і умов застосування, що підвищує її практичну цінність. Вона легко інтегрується в існуючі інфраструктури і забезпечує високу ефективність у різних контекстах, включаючи промислове виробництво, медицину, автоматизацію процесів та інші сфери.
URI: https://er.chdtu.edu.ua/handle/ChSTU/6290
Appears in Collections:123 Комп’ютерна інженерія (Спеціалізовані комп’ютерні системи)

Files in This Item:
File Description SizeFormat 
Б_123_2024_Ковіня.pdf
  Restricted Access
3.95 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
 
 
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ 
КАФЕДРА РОБОТОТЕХНІКИ ТА СПЕЦІАЛІЗОВАНИХ 
КОМП’ЮТЕРНИХ СИСТЕМ 
Пояснювальна записка 
до кваліфікаційної роботи 
освітнього ступеня «бакалавр» 
на тему: ОБРОБКА ЗОБРАЖЕНЬ У ЗАДАЧАХ 
КОМП'ЮТЕРНОГО ЗОРУ 
 
 
 
 
 
 
Виконав: здобувач вищої освіти 2 курсу, 
групи СКСС-2277 
 спеціальності 151 Автоматизація та 
комп’ютерно-інтегровані технології 
 Дмитро КОВІНЯ 
 (ім'я та ПРІЗВИЩЕ) 
Керівник Костянтин РУДАКОВ 
 (ім'я та ПРІЗВИЩЕ) 
Рецензент  
 (ім'я та ПРІЗВИЩЕ) 
 
 
 
Черкаси 2024 року 
 2 
 
ЗМІСТ 
ВСТУП .......................................................................................................................... 3 
РОЗДІЛ 1. ПІДХОДИ ДО ОБРОБКИ ЗОБРАЖЕННЯ У ЗАДАЧАХ 
КОМП'ЮТЕРНОГО БАЧЕННЯ ................................................................................. 5 
1.1 ПОСТАНОВКА ЗАДАЧІ ВИДІЛЕННЯ КОНТУРІВ НА ЗОБРАЖННІ ................................ 7 
1.2 АНАЛІЗ АЛГОРИТМІВ, ЩО ВИКОРИСТОВУЮТЬСЯ ДЛЯ ВИДІЛЕННЯ КОНТУРІВ 
ОБ’ЄКТІВ У ЗОБРАЖЕННЯХ ........................................................................................... 8 
1.3 МОДИФІКОВАНИЙ АЛГОРИТМ ВИДІЛЕННЯ КОНТУРІВ ............................................ 9 
РОЗДІЛ 2. СКЛАДНІ ФІЛЬТРИ ............................................................................... 12 
2.1 ЛІНІЙНІ ФІЛЬТРИ .................................................................................................. 12 
2.2 ФІЛЬТРУВАННЯ НА ОСНОВІ УПОРЯДКУВАННЯ ..................................................... 17 
2.3  ФІЛЬТРУВАННЯ З ВИКОРИСТАННЯМ НОРМАЛЬНОГО РОЗПОДІЛУ ........................ 21 
2.4 ПОПЕРЕДНЯ ОБРОБКА ЗОБРАЖЕННЯ ..................................................................... 36 
РОЗДІЛ 3. ПОШУК ОБ'ЄКТІВ НА ЗОБРАЖЕННІ ............................................... 46 
3.1 ВИЗНАЧЕННЯ КРАЇВ ТА ЛІНІЙ У ЦИФРОВИХ ЗОБРАЖЕННЯХ ................................. 46 
3.2 ЗАСТОСУВАННЯ ДІАГРАМ ВОРОНОГО ДО АНАЛІЗУ ЗОБРАЖЕННЯ ........................ 50 
3.3 МЕТОДИ ПОШУКУ ЛІНІЙ НА ЗОБРАЖЕННІ З ВИКОРИСТАННЯМ ГРАДІЄНТІВ ......... 55 
РОЗДІЛ 4. ВЖЕ ІСНУЮЧІ СИСТЕМИ КОМП’ЮТЕНОГО ЗОРУ ..................... 58 
4.1 TESLA AUTOPILOT ................................................................................................ 58 
4.2 JOHN DEERE'S SEE & SPRAY................................................................................. 60 
4.3 GOOGLE DEEPMIND'S AI FOR EYE DISEASE DETECTION ...................................... 63 
ВИСНОВКИ ................................................................................................................ 66 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ .................................................................. 68 
ДОДАТОК А – ОБРОБКА ЗОБРАЖЕНЬ У ЗАДАЧАХ КОМП'ЮТЕРНОГО 
ЗОРУ (UA.ЧДТУ.242254-01 12 01-1) ........................................................................ 71 
 
 ЧДТУ.242254.001 ПЗ 
 
Змн. Арк. № докум. Підпис Дата  
 
  Розроб. Ковіня Обробка зображень у задачах Літ. Лист. Листів 
 Перевір. Рудаков комп'ютерного зору  2 72 
 Реценз.    
 Н. Контр.  Пояснювальна записка  ЧДТУ, СКСС-2277 
 Затверд. Лукашенко  
 
 
ВСТУП 
Розпізнавання простих геометричних фігур на зображеннях дуже 
поширене в ряді задач, тому що такі фігури часто наявні у середовищі, 
створеному людиною. Для цієї задачі останнім часом відкрилася ще одна 
область – мобільні сенсорні пристрої. У деяких додатках та іграх потрібно 
розпізнавати примітивні фігури, що зчитуються з екрану в результаті 
проведення по ньому маніпулятором. 
Одним із актуальних напрямків сучасної прикладної науки є активне 
впровадження комп'ютерних технологій у медицину. Зокрема, використання 
спеціалізованих програмних засобів дозволяє здійснювати діагностику 
пацієнтів, швидко обробляти інформацію та обмінюватися даними, а також 
навчати майбутніх фахівців. Виділення контурів і фільтрація зображень є 
надзвичайно важливими для високоточних медичних операцій, таких як 
хірургічні втручання на серці та головному мозку, де потрібна максимальна 
точність і розуміння місця проведення процедур, щоб уникнути шкоди пацієнту. 
Алгоритми виділення об'єктів на зображеннях можуть застосовуватися у 
різних сферах. Наприклад, вони корисні під час роботи з архівами фотознімків, 
створення каталогів товарів для роздрібної торгівлі, медичної діагностики 
захворювань, запобігання злочинам та заворушенням, а також контролю за 
вмістом великих масивів зображень. Деякі компанії розробляють програмні 
продукти, що використовують ці алгоритми для фільтрації вмісту веб-сторінок, 
забезпечуючи таким чином безпеку та ефективність в інтернет-середовищі. 
Загалом, комп'ютерні технології стають невід'ємною частиною медичної 
галузі, сприяючи підвищенню точності та швидкості медичних процедур, а 
також забезпечуючи високий рівень навчання для нових фахівців. 
Актуальність теми даного дипломного проекту підтверджується широким 
спектром застосувань алгоритмів розпізнавання та обробки зображень у різних 
галузях. Розпізнавання простих геометричних фігур є ключовим завданням у 
мобільних сенсорних пристроях, що використовуються у додатках та іграх. У 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
3 
Змн. Арк. № докум. Підпис Дата  
 
 
медицині комп'ютерні технології з спеціалізованим програмним забезпеченням 
відіграють важливу роль у діагностиці, обробці даних та навчанні, а також у 
проведенні високоточних операцій на серці та головному мозку, де необхідна 
максимальна точність. Крім того, алгоритми виділення об'єктів на зображеннях 
використовуються для організації архівів, створення каталогів, медичної 
діагностики, запобігання злочинам, контролю вмісту зображень та фільтрації 
веб-сторінок, що підкреслює важливість та актуальність цієї теми. 
Мета: удосконалити алгоритм для знаходження виділення простих 
геометричних фігур на зображенні. 
Для реалізації поставленої мети слід вирішити наступні завдання  
- описати алгоритм обробки зображення та послідовність кроків обробки 
зображення для виділення на зображенні обєктів різної форми, які 
можна представити простими геометричними фігурами, 
- реалізувати алгоритми обробки зображення, 
- застосувати методи обробки зображення у цілісній програмі для 
виділення простих геометричних фігур на зображенні, 
- Оглянути вже готові рішення комп’ютерного зору. 
 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
4 
Змн. Арк. № докум. Підпис Дата  
 
 
РОЗДІЛ 1. ПІДХОДИ ДО ОБРОБКИ ЗОБРАЖЕННЯ У ЗАДАЧАХ 
КОМП'ЮТЕРНОГО БАЧЕННЯ 
Алгоритми, методи та програмні інструменти для пошуку зображень 
зародилися у сферах обробки сигналів, комп'ютерного зору та статистики. 
Найбільш популярними методами опису змісту зображень, які 
використовуються для подальшого їх порівняння, є колір, текстура та форма. Ці 
методи не прив'язані до жодного конкретного підкласу систем і широко 
застосовуються в різних контекстах. Одним із поширених видів пошуку 
зображень є пошук за колірними складовими, що виконується переважно 
шляхом порівняння точкових або гістограмних колірних характеристик. 
Пошук за текстурними ознаками використовує структури даних, які 
містять інформацію про текстуру та її розташування на зображенні. Текстуру 
зазвичай представляють як двомірний масив змін яскравості. Інший різновид 
пошуку включає опис геометричної форми окремих регіонів зображення. Для 
цього регіони спочатку проходять через процес сегментації або виділення 
контурів об’єктів. 
Процес пошуку зображень, схожих на задане, складається з кількох 
етапів. Спочатку створюється опис зображення, яке виступає зразком для 
пошуку. Потім цей опис порівнюється з аналогічними описами всіх зображень, 
що вже є в колекції, з метою виділення тих, які мають схожі характеристики. 
Виділення контурів у зображенні виконується на етапі створення опису його 
вмісту. Час, витрачений на виділення контурів, впливає на загальний час 
виконання пошуку. 
На час пошуку також впливають часові витрати на порівняння описів 
вмісту зображень. Тому алгоритм виділення контурів має бути 
високошвидкісним і створювати компактний опис контуру, придатний для 
подальшого порівняння. Це дозволяє зменшити час на порівняння та підвищити 
загальну ефективність процесу пошуку зображень. Таким чином, оптимізація 
алгоритмів виділення контурів є важливим аспектом розвитку технологій 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
5 
Змн. Арк. № докум. Підпис Дата  
 
 
пошуку зображень, забезпечуючи швидкість та точність у різних застосуваннях, 
від медичної діагностики до контролю за вмістом веб-сторінок. На сьогодні 
послідовність процедур обробки зображень прийнято розглядати відповідно до 
так званої парадигми Марра. Ця парадигма, запропонована Д.Марром на основі 
тривалого вивчення механізмів зорового сприйняття людини, стверджує, що 
обробка зображень спирається на кілька послідовних рівнів висхідної 
інформаційної лінії "іконічне уявлення об'єктів (растрове зображення, 
неструктурована інформація) - символічне уявлення (векторні і атрибутивні дані 
в структурованій формі, реляційні структури) "і повинно здійснюватися за 
модульним принципом за допомогою наступних етапів обробки:  
⎯ передобробка зображення; 
⎯ первинна сегментація зображення; виділення геометричної 
структури видимого поля; 
⎯ визначення відносної структури і семантики видимої сцени. 
Пов'язані з цими етапами рівні обробки зазвичай називаються обробкою 
нижнього, середнього і високого рівнів, відповідно. Алгоритми нижнього рівня 
обробки, такі як фільтрація простих шумів і гістограмна обробка, вважаються 
добре вивченими та опрацьованими. Проте, алгоритми середнього рівня, 
зокрема сегментація, залишаються центральним напрямком дослідницьких 
зусиль. Останніми роками було досягнуто значного прогресу в задачах 
зіставлення точок і фрагментів зображень (matching), виділення ознак у малих 
фрагментах, високоточного 3D-позиціонування точок, що включає 
моделювання та калібрування датчиків і їх комбінацій, а також виділення 
простих яскраво-геометричних структур, таких як "точка", "край", "пляма", 
"пряма лінія" та "кут". Ці первинні особливості зображення, відомі також як 
характерні риси, відіграють ключову роль у побудові яскраво-геометричних 
моделей об'єктів. 
Якщо говорити про методи і алгоритми виявлення складних об'єктів, то 
одна з центральних проблем, що відрізняють методи обробки зображень від 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
6 
Змн. Арк. № докум. Підпис Дата  
 
 
добре вивченої теорії обробки сигналів, полягає в розробці методів виявлення 
об'єктів, слабо чутливих до різноманітних видів мінливості, характерним лише 
для зображень. Такими специфічними видами мінливості є ракурси і 
радіометричні спотворення, а також різні види спотворень, що не зводяться до 
імовірнісних моделей. Були запропоновані як безліч евристичних алгоритмів 
виявлення конкретних типів об'єктів, так і ряд підходів, що володіють більшою 
спільністю: методи кореляційного виявлення перетворення Хафа морфологічні 
підходи Питьева і Серра. Значний внесок у розробку методів і алгоритмів 
обробки зображень і машинного зору стосовно обговорюваних завданням 
виявлення внесли роботи Л.П.Ярославского, В.К.Злобіна, В.Л.Лёвшіна, 
Р.Хараліка, Е.Девіса, Р.Неватіа, Е.Дікманнса, В.Фёрстнера і багатьох інших. 
Однак, незважаючи на досягнуті результати, загальний стан проблеми 
виділення та ідентифікації складнострукурованих об'єктів на моноскопіческіх 
зображеннях можна охарактеризувати як незадовільний. Ще складніше виглядає 
завдання виявлення тривимірних структур на стереоскопічних зображеннях. [1] 
 
1.1 Постановка задачі виділення контурів на зображнні 
Задача виділення контурів зазвичай формулюється як побудова 
зображення кордонів об'єктів і однорідних областей. Коли виділення контурів 
виконується для пошуку зображень, першочергове завдання полягає у створенні 
опису контуру, придатного для подальшого порівняння. Традиційно контуром 
називають сукупність пікселів, навколо яких спостерігається зміна функції 
яскравості. Оскільки при цифровій обробці зображення представляється як 
функція з цілочисельними аргументами, контури утворюються лініями 
шириною щонайменше в один піксель. Надалі, для скорочення обсягу пам'яті, 
необхідної для зберігання опису зображення, розглядатимемо контур як 
сукупність суміжних прямолінійних відрізків. Нехай вхідне зображення I 
представляє собою прямокутну матрицю розміром M*N, де елементами є 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
7 
Змн. Арк. № докум. Підпис Дата  
 
 
кольори відповідних пікселів зображення, а M і N – це ширина і висота 
зображення відповідно. Зображення I є сукупністю K фрагментів (вікон). 
(1) 
 
Далі, нехай існує F– алгоритм, за допомогою якого виділяються контури 
об’єктів, що містяться в зображенні I. Алгоритм працює з певним вікном W. 
Позначимо результат обробки зображення I алгоритмом F як А: 
A=F(I) (2) 
A задає собою множину, кожен елемент якої описує прямолінійний 
відрізок, що є фрагментом контуру: 
 (3) 
де  -кутовий коефіцієнт прямої, -відстань до середини вікна Таким 
чином, задача виділення контурів може розглядатися як задача отримання 
множини A для деякого зображення I шляхом виконання алгоритму F при 
фіксованому розмірі вікна . 
 
1.2 Аналіз алгоритмів, що використовуються для виділення контурів 
об’єктів у зображеннях 
Алгоритми виділення контурів можна умовно розбити на три групи: 
алгоритми відслідковування, алгоритми сканування та їх комбінації. Алгоритми 
відслідковування засновані на тому, що на зображенні відшукується об'єкт 
(перша точка об'єкта, що зустрілася) і контур об'єкта описується сукупністю 
векторів. Простежування контурів є послідовним процесом, у якому помилка, 
допущена на будь-якому кроці цього процесу, робить більш імовірними 
помилки й на наступних кроках. Тому алгоритми простежування контурів 
можуть застосовуватися тільки на зображеннях з низьким рівнем шуму. 
Перевагою даних алгоритмів є простота, до недоліків можна віднести 
послідовну реалізацію й деяку складність при пошуку та обробці внутрішніх 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
8 
Змн. Арк. № докум. Підпис Дата  
 
 
контурів . Прикладами таких алгоритмів є алгоритм «жука», метод активних 
контурів , метод Canny (оптимальний детектор краю) [3].  
Алгоритми сканування засновані на перегляді усього зображення й 
виділенні контурних точок без прив’язки до попередніх точок контуру.  
Комбінація методів відслідковування й сканування полягає у тому, що 
спочатку в результаті скануючого перегляду зображення здійснюється його 
попередня розмітка.  
З точки зору розміру оброблюваного зображення можна розділити 
алгоритми на два великих класи за ознакою розміру оброблюваної області. 
Перша група розбиває зображення на окремі частини й обробляє їх окремо. До 
неї можна віднести локальні алгоритми виявлення перепадів яскравості, 
алгоритм «Snakes on the Watershed».[4] 
Друга група передбачає обробку всього зображення. До неї належать 
алгоритми жука, активних контурів, Canny. Другу групу так само можна 
розділити на дві підгрупи за типом обробки зображення – комплексні й 
послідовні алгоритми. Перші припускають обробку всього зображення відразу 
(це метод активних контурів, метод Canny), а другі –послідовну (попіксельну) 
обробку зображення (алгоритм «жука»).З точки зору кількості контурів, що 
виділяються алгоритмом, також можна вирізнити дві підгрупи алгоритмів. До 
алгоритмів, які можуть виявляти на зображенні кілька контурів об'єктів, що не 
перетинаються, належать алгоритми Canny, «Snakes on the Watershed», алгоритм 
Перова, нейромережевий алгоритм. Тільки один контур можуть виявити 
алгоритми «жука», активних контурів і динамічного програмування. [5] 
 
1.3 Модифікований алгоритм виділення контурів 
Для реалізації процедури виділення контуру за допомогою нейронної 
мережі була прийнята наступна модель. На вхід нейронної мережі подається 
зображення вікна спостереження розміром M*N. Це зображення задовольняє 
наступним вимогам:  
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
9 
Змн. Арк. № докум. Підпис Дата  
 
 
а) зображення завжди містить елемент контуру, тобто в будь-якому 
представленому зображенні міститься границя перепаду яскравостей об'єкта й 
фона; 
б) на зображенні є лише один контур; 
в) на зображенні може бути присутнім адитивний шум Гаусса, що 
перешкоджає правильній роботі алгоритму. Щоб дотриматися вимог до вікна 
зображення, рекомендується виконати знаходення попереднього контуру більш 
швидким і грубим методом, після чого знайдене наближення контуру розбити 
на ділянки для уточнення на нейромережі [6].  
Для попереднього визначення контурів використовується комбінація 
кількох етапів алгоритму Canny. Спочатку виконується згладжування шуму в 
початковому зображенні за допомогою згортки з матрицею, що має гауссовий 
розподіл елементів. Далі застосовується оператор Собеля, який виконує 
двомірне знаходження градієнта зображення. Для цього використовуються дві 
матриці розміром 3x3 для обчислення горизонтального (Gx) і вертикального 
(Gy) градієнтів. Результати двох градієнтів комбінуються за формулою: 
 (4) 
Після цього виконується порогове претворення з метою усунення 
переривчастості контуру. На виході алгоритму необхідно отримати основні 
параметри прямої, що апроксимує границю перепаду яскравості. Вхідним 
сигнал нейтронної мережі є вектор , де =0,1, він 
представляє собою квадратний фрагмент бінаризованого зображення, що 
містить елемент контуру. 
Вихідний сигнал: kb = , де k–кут нахилу прямої, що апроксимує даний 
елемент коду, b–відстань прямої до центру фрагмента. При цьому k=0 
відповідає куту . Значення b=0 відповідає відстані, рівній 0, а b=1 відповідає 
стороні фрагмента, поділеній на . 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
10 
Змн. Арк. № докум. Підпис Дата  
 
 
Нейронна мережа являє собою двошаровий персептрон, перший шар 
якого складається з 10 нейронів, а другий –з 2 нейронів. Кожен з нейронів 
першого шару пов'язаний з кожним елементом другого шару. Кожен елемент 
вхідної множини подається на кожен з нейронів першого шару. Функція 
активації нейронів логістична, описується формулою: 
(5) 
 
Функція помилки визначає різницю між фактичним і бажаним значеннями 
вихідного сигналу.  
Система якості вимагає, щоб налаштування нейронної мережі тривало до 
тих пір, поки обидва компоненти функції помилки одночасно не досягнуть 
заданої точності. Навчання нейронної мережі здійснюється за допомогою 
алгоритму зворотного поширення помилки. 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
11 
Змн. Арк. № докум. Підпис Дата  
 
 
РОЗДІЛ 2. СКЛАДНІ ФІЛЬТРИ 
2.1 Лінійні фільтри 
У лінійних просторових фільтрах отримуються відфільтровані значення 
цільових пікселів за допомогою лінійних комбінацій значень пікселів у 
сусідстві n × m. Цільовий піксель розташований в центрі. Лінійна комбінація 
значень сусідніх пікселів визначається ядром фільтра або маскою. Ядро 
фільтра - масив того ж розміру, що і сусідство, що містить ваги, які 
призначаються для пікселів навколо цільового пікселя. Лінійний просторовий 
фільтр зчіплює значення ядра та сусідніх пікселів, щоб отримати новий 
цільовий піксель. Нехай w - це  ядро e×3 і нехай g (x, y) є цільовим пікселем в 
області 3 × 3 , потім отримано нове значення цільового пікселя як суму 
поелементного добутку векторів рядків. Для пар 1 × n векторів a, b одного 
розміру точка являє собою суму  значень у відповідних позиціях, тобто :  
     (6) 
 
Після вибору ядра 3 × 3 значення обраного пікселя g (x, y) в області 3 × 
3 цифрового зображення g обчислюється за формулою: 
(7) 
 
Наприклад: 
(8) 
 
Ядро w називається маскою Собеля і використовується у виявленні 
краю на зображеннях. У Matlab значення цільового пікселя цільового n (2, 2) 
для заданого масиву 3 × 3 можна обчислити за допомогою функції двокрапки. 
Лістинг 1 
w = [ 1 0 -1; 2 0 -2; 1 0 -1 ]; 
n = [ 1 2 3; 4 5 6; 7 8 9 ] ; 
  
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
12 
Змн. Арк. № докум. Підпис Дата  
 
 
p1 = dot( w( 1,: ),n( 1,: ) ); 
p2 = dot( w( 2,: ),n( 2,: ) ); 
p3 = dot( w( 3,: ),n( 3,: ) ); 
  
t = ( p1 + p2 ) + p3; 
Алгоритм згортки ядра із зображенням сусідства 
(Крок 1) Визначити n × n фільтр ядра k. 
(Крок 2) Просувати ядро на n × n cусідів 
(Крок 3) Помножити значення пікселів на відповідні ваги ядра. Додати 
значення отримані з кожного рядка.  
(Крок 4) Змінити початкове цільове значення на нове відфільтроване 
значення і повернутися до кроку 3. 
Використовуючи те, що називається анонімною функцією @, ядро може 
бути визначено в Matlab в термінах операції op, таких як max, median, min, 
таким чином. 
 (9) 
Nlfilter (фільтр для зсуву по сусідству) фільтрує зображення з точки зору 
сусідства n × n та ядра (наприклад, основний підхід полягає в тому, щоб 
обчислити значення цільового пікселя в області, замінивши вихідне цільове 
значення пікселя на середнє значенням ядра). 
Лістинг 2 
% --- зчитування зображення та конвертація у відтінки сірого -
------------- 
filename = 'bee-polen.jpg'; 
g = rgb2gray( imread( [ 'pictures/' filename ] ) ); 
  
% відображення результатів 
subplot( 1,4,1 ); 
imshow( g ); 
  
subplot( 1,4,2 ); 
imhist( g ); 
  
% --- виконання фільтрації з використанням функції nfilter ---
------------- 
% налаштування фільтра 
func = @( x )median( x( : ) ); 
% func = @( x )max( x( : ) ); 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
13 
Змн. Арк. № докум. Підпис Дата  
 
 
% func = @( x )( uint8( mean( x( : ) ) ) ); 
  
% виконання фільтрації 
h = nlfilter( g,[ 3 3 ],func ); 
  
% відображення результатів 
subplot( 1,4,3 ); 
imshow( h ); 
title( 'nlfilter(g,[3 3],func)' ); 
  
subplot( 1,4,4 ); 
imhist( h ); 
 
 
Рисунок 2.1 - Median фільтр cameraman.tif 
Основна ідея лінійної фільтрація зсуву полягає в тому, щоб 
використовувати fspecial для побудови різних лінійних згорток ядра з'єднань. 
Для ілюстрації розглянуто побудову ядра, що імітує ефект розмиття руху. Його 
можна досягти або шляхом фотографування об'єктів, що швидко рухаються, 
стоячи нерухомо або безперервно знімаючи зображення під час руху камери. 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
14 
Змн. Арк. № докум. Підпис Дата  
 
 
Ефект розмивання руху можна змінювати з різним вибором довжини 
пікселя і стрілки кута руху проти годинникової стрілки (за fspecial 
встановлюється певне ядро розмивання двигуна). На рисунку рис.2 глобальне 
розмивання двигуна показано на картині медової бджоли. 
 
Рисунок 2.2 - Фільтр розмиття медової бджоли 
Лістинг 3 
% --- зчитування зображення ----------------------------------
------------- 
filename = 'bee-polen.jpg'; 
g = imread( [ 'pictures/' filename ] ); 
  
% виведення початкового зображення 
subplot( 1,2,1 ); 
imshow( g ); 
title( 'початкове зображення' ); 
  
% --- налаштування ядра --------------------------------------
------------- 
kernel = fspecial( 'motion',50,45  ); 
% len = 20, CCangle = 45; 
  
% --- виконання фільтрації -----------------------------------
------------- 
h = imfilter( g,kernel,'symmetric' ); 
  
% відображення результату 
subplot( 1,2,2 ); 
imshow( h ); 
title( 'fspecial( motion,20,45 )' ); 
 
Основний підхід, що використовує функція roifilt2, наведено в Лістингу 4, 
з точки зору несистемної фільтрації однієї з монет, показаних на рисунку 2.3. 
Лістинг 4 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
15 
Змн. Арк. № докум. Підпис Дата  
 
 
% --- зчитування зображення та конвертація у відтінки сірого -
------------- 
filename = 'bitcoin.jpg'; 
I = rgb2gray( imread( [ 'pictures/' filename ] ) ); 
  
% --- налаштування області інтересу --------------------------
------------- 
c = [ 222 272 300 270 221 194 ]; 
r = [ 21 21 175 221 221 75 ]; 
  
% --- обробка області ----------------------------------------
------------- 
% область, що розглядається 
BW = roipoly( I,c,r ); 
% різкість зображення 
H = fspecial('unsharp'); 
% виконання фільтрації 
J = roifilt2( H,I,BW ); 
  
% виведення результатів 
subplot( 1,2,1 ); 
imshow( I ); 
title( 'roi = виділена червоною рамкою'); 
hold on 
plot([ c c(1) ],[ r r(1) ],'r-' ); 
hold off 
  
subplot( 1,2,2 ); 
imshow( I ); 
title( 'filtered roi = виділена червоною рамкою' ); 
hold on 
plot([ c c(1) ],[ r r(1) ],'r-' ); 
hold off 
 
 
Рисунок 2.3 - Регіон інтересів 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
16 
Змн. Арк. № докум. Підпис Дата  
 
 
 
2.2 Фільтрування на основі упорядкування 
Mean фільтр (середній фільтр) - найпростіший з лінійних фільтрів. Ця 
форма фільтрації дає однакову вагу для всіх пікселів у районі n × m, де вага w 
визначається як 
(10) 
 
Наприклад, в районі 3 × 3,  . Кожне значення пікселя p у образі 
замінюється середнім значенням  пікселів з n × m району p. Кінцевим 
результатом середньої фільтрації є згладжування зображення.  
Після того, як встановлено середнє ядро фільтра, функція imfilter 
використовується для здійснення середньої фільтрації зображення. 
Лістинг 5 
% --- зчитування зображення ----------------------------------
------------- 
filename = 'forest.jpg'; 
g = imread( [ 'pictures/' filename ] ); 
  
% відображення вхідного зображення 
subplot( 2,3,1 ); 
imshow( g ); 
title( filename ); 
  
% --- накладання шуму 'salt & pepper' та виведення результату 
------------- 
nsp = imnoise( g,'salt & pepper',0.05 );  
  
subplot( 2,3,2 ); 
imshow( nsp ); 
title( 'шум "salt & pepper"' ); 
  
% --- накладання шуму 'localvar' та виведення результату -----
------------- 
g = im2double( g ); 
v = g( :,:,: ); 
np = imnoise( g,'localvar',v ); 
  
subplot( 2,3,3 ); 
imshow( np ); 
title( 'шум "localvar"' ); 
  
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
17 
Змн. Арк. № докум. Підпис Дата  
 
 
% --- виконання фільтрації на основі фільтру mean ------------
------------- 
kernel = ones( 3,3 ) / 9; 
g1 = imfilter( g,kernel ); 
g2 = imfilter( nsp,kernel ); 
g3 = imfilter( np,kernel ); 
  
% відображення результатів 
subplot( 2,3,4 ); 
imshow( g1 ); 
title( 'фільтроване зображення' ); 
  
subplot( 2,3,5 ); 
imshow( g2 ); 
title( 'фільтроване зображення' ); 
  
subplot( 2,3,6 ); 
imshow( g3 ); 
title( 'фільтроване зображення' ); 
 
 
Рисунок 2.4 - Mean фільтр 
 
Медіана фільтрації є більш ефективною, ніж середня фільтрація. Кожне 
піксельне значення p у зображенні замінюється середнім значенням від n × m 
району р. Ця форма фільтрації зберігає край зображення, у той час як 
усуваються шумові коливання у значеннях пікселів зображення. Замість того, 
щоб настроїти ядро фільтра, як при середній фільтрації, функція medfilt2 
використовується для здійснення медіанної фільтрації в межах n × m 
зображення сусідства. 
Лістинг 6 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
18 
Змн. Арк. № докум. Підпис Дата  
 
 
% --- зчитування зображення та конвертація у відтінки сірого -
------------- 
filename = 'forest.jpg'; 
g = rgb2gray( imread( [ 'pictures/' filename ] ) ); 
  
% відображення вхідного зображення 
subplot( 2,3,1 ); 
imshow( g ); 
title( filename ); 
  
% --- накладання шуму 'salt & pepper' та виведення результату 
------------- 
nsp = imnoise( g,'salt & pepper',0.05 );  
  
subplot( 2,3,2 ); 
imshow( nsp ); 
title( 'шум "salt & pepper"' ); 
  
% --- накладання шуму 'localvar' та виведення результату -----
------------- 
g = im2double( g ); 
v = g( :,: ); 
np = imnoise( g,'localvar',v ); 
  
subplot( 2,3,3 ); 
imshow( np ); 
title( 'шум "localvar"' ); 
  
% --- виконання фільтрації на основі фільтру median ----------
------------- 
g1 = medfilt2( g,[ 3 3 ] ); 
g2 = medfilt2( nsp,[ 3 3 ] ); 
g3 = medfilt2( np,[ 3 3 ] ); 
  
% відображення результатів 
subplot( 2,3,4 ); 
imshow( g1 ); 
title( 'фільтроване зображення' ); 
  
subplot( 2,3,5 ); 
imshow( g2 ); 
title( 'фільтроване зображення' ); 
  
subplot( 2,3,6 ); 
imshow( g3 ); 
title( 'фільтроване зображення' ); 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
19 
Змн. Арк. № докум. Підпис Дата  
 
 
 
 
 
 
 
Рисунок 2.5 - Median фільтр для зображення 
Медіанна фільтрація - це особливий випадок, що називається фільтрацією 
сортування за замовчуванням. Максимальний фільтр замовлень вибирає 
максимальне значення в певному районі. Аналогічним чином, мінімальний 
фільтр замовлень обирає мінімальне значення в певному районі. Функція 
ordfilt2 виконує фільтрування порядку, використовуючи синтаксис. 
 (11) 
замінює кожне значення пікселя в зображенні g за замовчуванням 
значення пікселя у упорядкованому наборі сусідів, вказаних ненульовими 
значеннями пікселів у домені. Використовуючи фільтр максимального 
замовлення на g = forest.tif з сусідством 5 × 5 
 (12) 
Щоб реалізувати мінімальний фільтр замовлень на g = forest.tif з 
сусідством 5×5 
 (13) 
Лістинг 7 
g1 = ordfilt2( g,25,ones( 5,5 ) ); 
g2 = ordfilt2( nsp,25,ones( 5,5 ) ); 
g3 = ordfilt2( np,25,ones( 5,5 ) ); 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
20 
Змн. Арк. № докум. Підпис Дата  
 
 
 
 
 
Рисунок 2.6 - Максимальне замовлення фільтрування зображення 
2.3  Фільтрування з використанням нормального розподілу 
Нехай x позначає піксельну інтенсивність цифрового зображення g,  
середню інтенсивність пікселя зображення, а σ - стандартне відхилення 
інтенсивності пікселя. Дискретною формою нормального розподілу 
інтенсивностей пікселів є гауссова функція f: X → R 
(14) 
 
Для проведення нормальної фільтрації розподілу за допомогою 
спеціальної функції необхідно вибрати ядро n × m (зазвичай, n = m) і стандартне 
відхилення σ. 
Лістинг 8 
% --- зчитування зображення ----------------------------------
------------- 
filename = 'forest.jpg'; 
g = imread( [ 'pictures/' filename ] ); 
  
% виведення початкового зображення 
subplot( 2,3,1 ); 
imshow( g ); 
title( filename ); 
  
% --- накладання шуму 'salt & pepper' та виведення результату 
------------- 
nsp = imnoise( g,'salt & pepper',0.05 ); 
% nsp = imnoise( g,'salt&pepper',0.15 ); 
  
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
21 
Змн. Арк. № докум. Підпис Дата  
 
 
subplot( 2,3,2 ); 
imshow( nsp ); 
title( 'шум "salt & pepper"' ); 
  
% --- накладання шуму 'localvar' та виведення результату -----
------------- 
g = im2double( g ); 
v = g( :,:,: ); 
np = imnoise( g,'localvar',v ); 
  
subplot( 2,3,3 ); 
imshow( np ); 
title( 'шум "localvar"' ); 
  
% --- виконання фільтрації на основі Гаусіану ----------------
------------- 
lowpass = fspecial( 'gaussian',[ 5 5 ],2 ); 
g1 = imfilter( g,lowpass ); 
g2 = imfilter( nsp,lowpass ); 
g3 = imfilter( np,lowpass );  
% відображення результатів 
subplot( 2,3,4 ); 
imshow( g1 ); 
title( 'фільтроване зображення' ); 
  
subplot( 2,3,5 ); 
imshow( g2 ); 
title( 'фільтроване зображення' ); 
  
subplot( 2,3,6 ); 
imshow( g3 ); 
title( 'фільтроване зображення' ); 
 
 
 
Рисунок 2.7 - Максимальне замовлення фільтрування зображення 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
22 
Змн. Арк. № докум. Підпис Дата  
 
 
Подвійний точний лапласовий фільтр 
Лістинг 9 
% --- зчитування зображення та конвертація у відтінки сірого -
------------- 
filename = 'circuit.jpg'; 
g = rgb2gray( imread( [ 'pictures/' filename ] ) ); 
  
% --- виконання фільтрації з різними ядрами ------------------
------------- 
gr = edge( g,'roberts' ); 
gp = edge( g,'prewitt' ); 
gs = edge( g,'sobel' ); 
  
% відображення результатів 
subplot( 2,3,1 ); 
imshow( g ); 
title( filename ); 
  
subplot( 2,3,2 ); 
imshow( ~gr ); 
title( 'фільтр Робертса' ); 
  
subplot( 2,3,3 ); 
imshow( ~gp ); 
title( 'фільтр Прюітта' ); 
  
subplot( 2,3,4 ); 
imshow( ~gs ); 
title( 'фільтр Собеля' ); 
  
% --- використання Лапласіана --------------------------------
------------- 
k = fspecial( 'laplacian' ); 
glap = imfilter( double( g ),k,'symmetric' );  
glap = medfilt2( glap,[ 3 3 ] ); 
  
subplot( 2,3,5 ); 
imshow( glap ); 
title( 'Лапласіан з дійсними числами' ); 
  
% --- використання логарифмічного фільтра --------------------
------------- 
k = fspecial( 'log' );  
glog = imfilter( double( g ),k,'symmetric' ); 
glog = medfilt2( glog,[ 3 3 ] ); 
  
subplot( 2,3,6 ); 
imshow( glog ); 
title( 'логарифмічний фільтр з низьким шумом' ); 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
23 
Змн. Арк. № докум. Підпис Дата  
 
 
Ранні спроби виявлення краю Робертсом, Превитом та Собелем 
зосереджені на виявленні точок, де градієнт краю краю першого порядку 
високий. Починаючи з середини 1960-х р, видимими є стрибки яскравості 
виявлених Робертсом країв. Похідні апроксимації були обчислені Р.М. Haralick 
або безпосередньо з значень пікселів або з локальних найменших квадратів. 
Фільтри першого порядку краю, такі як фільтри Робертса, Прейвіта та Собела, 
часто використовуються як крок до сегментації цифрових зображень. Для 
зображень, де важливо доопрацювання краю, використовуються методи 
фільтрації зображення другого порядку. Загальним методом заточення краю як 
кроку до покращення зображення є другий лапласовський фільтр. 
Дл∇я пікселя g(x, y) у зображенні g недискретна форма лапласовського 
фільтра 2g (x, y) визначається шляхом 
(15) 
 
Для цілей реалізації дискретна форма лапласианського фільтра ∇2g (x, y) 
визначається як 
 (16) 
Основним підходом до похідного методу другого порядку для посилення 
зображення є віднімання відфільтрованого зображення з вихідного зображення, 
тобто в термінах значення пікселя g (x, y), обчислення 
 (17) 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
24 
Змн. Арк. № докум. Підпис Дата  
 
 
 
 
 
Рисунок 2.8 - Подвійна точність фільтра Лапласа 
Лістинг 10 
% --- робота з Лапласіаном -----------------------------------
------------- 
% налаштування ядра 
k = fspecial( 'laplacian',1 );  
% виконання фільтрації 
h2 = imfilter( g,k );  
% вилучення фільтрованого зображення з початкового 
ge = imsubtract( g,h2 );  
  
% відображення результатів 
subplot( 3,1,1 ); 
imshow( g ); 
title( [ filename 'fossil' ] ); 
  
subplot( 3,1,2 ); 
imagesc( ~h2 ); 
title ( 'фільтрація Лапласіаном' ); 
axis image; 
  
subplot( 3,1,3 ); 
imshow( ge ); 
title( 'покращене зображення' ); 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
25 
Змн. Арк. № докум. Підпис Дата  
 
 
 
Рисунок 2.9 - Покращення зображення за допомогою фільтра Лапласа 
Карл Фрідріх Гаус (1777-1895), який представив функцію ядра (або 
нормальний розподіл), названу на його ім'я. Нехай x, y є лінійно незалежними, 
випадковими дійсними змінами зі стандартним відхиленням σ і середнім μ. 
Мета полягає в тому, щоб показати розподіл або значень x самостійно, або 
поєднаних x, y значень навколо походження з μ = 0 для кожного експерименту. 
Ширина σ> 0 набору значень x або x, y називається стандартним відхиленням і 
σ2 називається дисперсією. Як правило, графік набору значень вибірки з 
нормальним розподілом має форму кривої дзвоника (також називають 
нормальною кривою, розташованою навколо середини значень).  
Коли всі від'ємні значення x, y представлені їхніми абсолютними 
значеннями, тоді гауссові значення називаються складчастим нормальним 
розподілом. Існує дві форми гауссового ядра, які слід розглянути. 
Ядро Гаусса 1D. Якщо розглядати лише значення вибірки x зі 
стандартним відхиленням σ та середнім μ = 0, то функція ядру 1D (позначена f 
(x; σ)) визначається шляхом 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
26 
Змн. Арк. № докум. Підпис Дата  
 
 
(18) 
 
2D Гауссовське ядро Якщо розглядати значення вибірки x та y зі 
стандартним відхиленням σ і означати μx = 0, μy = 0, то функція 2D Gaussian 
ядра (позначена f (x, y; σ)) визначається  
(19) 
 
Приклад.  
Безперервні та дискретні 2D-гауссові ділянки ядра наведені на рис.. 
Дискретний графік виходить з дискретних значень. За дискретністю ми мається 
на увазі, чіткі, відокремлені. У цьому прикладі дискретні значення 
використовуються для отримання графіка на рис. Рис для менш відокремлених 
значень і, отже, має безперервний вигляд, навіть якщо графік витягується з 
дискретних значень. 
Лістинг 11 
% --- налаштування параметрів --------------------------------
------------- 
rng( 'default' ); 
nos = randn( 1,100 ); 
fineness = mean( nos ) * 5; 
FWHM = 4; 
sig = FWHM / sqrt( 8*log( 2 ) ); 
Dim = [20 20]; 
  
% --- розрахунок значень для двовимірного Гаусіана -----------
------------- 
% fineness = 0.55; 
[ x2d,y2d ] = meshgrid( -( Dim(2)-1 )/2 : ... 
                        fineness : ... 
                        ( Dim(2)-1 )/2, ... 
                        -( Dim(1)-1 )/2 : ... 
                        fineness : ... 
                        ( Dim(1)-1 )/2 ); 
gf = exp( -(x2d.*x2d+y2d.*y2d)/(2*sig*sig) ); 
gf = gf / sum( sum( gf ) ) / ( fineness^2 ); 
  
% виведення результату 
figure 
colormap hsv 
surfc( x2d + Dim( 1 )/2,y2d + Dim( 2 )/2,gf ); 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
27 
Змн. Арк. № докум. Підпис Дата  
 
 
legend( 'f(x,y,sigma=1.6986)','Location','NorthEast' ); 
  
% --- розрахунок значень для дискретного гаусіана ------------
------------- 
beta = 1; 
brighten( beta ); 
% дискретне ядро на основі двовимірного Гаусіана 
[ x2d,y2d ] = meshgrid( -( Dim( 2 )-1 )/2 : ... 
                       ( Dim( 2 )-1)/2,-( Dim( 1 )-1)/2 : ... 
                       ( Dim( 1 )-1)/2 ); 
gf = exp( -(x2d.*x2d + y2d.*y2d) / (2*sig*sig) ); 
gf = gf / sum( sum( gf) ); 
  
% виведення результату 
figure 
bar3( gf,'r' ); 
legend( 'f(x,y,sigma=1.6986)','Location','NorthEast' ); 
axis( [ 0 Dim( 1 ) 0 Dim( 2 ) 0 max( gf( : ) )*1.2 ] ); 
axis xy 
 
 
 
Рисунок 2.10 - 2D Гаусове ядро 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
28 
Змн. Арк. № докум. Підпис Дата  
 
 
 
Рисунок 2.11- 2D Гаусове ядро 
Нехай x, y - координати пікселя у 2D-образі Img, Img (x, y) інтенсивність 
пікселя, розташованого на (x, y), а σ - стандартне відхилення інтенсивності 
пікселя відносно середньої інтенсивності пікселів в околиці Img. Припущення, 
зроблене тут, полягає в тому, що σ - це стандартне відхилення розподілу 
імовірності інтенсивності пікселів в сусідстві зображень. Гауссовський фільтр 
(згладжування) 2D функція G (x, y; σ) визначається як 
(20) 
  
(21) 
 
Img(x, y) := G(x, y; σ) (G(x, y; σ) (22) 
(23) – відфільтроване значення. 
(24) - спрощена фільтроване значення. 
(25) - замінює інтенсивність пікселів Img (x, y). 
Основним підходом для фільтрації зображення тут є присвоєння  кожній 
інтенсивності пікселів у вибраному районі зображення фільтроване значенням  
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
29 
Змн. Арк. № докум. Підпис Дата  
 
 
G (x, y, σ), причому σ пропорційна розміру околиці, на якій працює гауссовий 
фільтр . 
Приклад  
 Гауссова фільтрація при згладженні зображення. 
Лістинг 12 
% --- зчитування зображення ----------------------------------
------------- 
filename = 'CNTrain.jpg'; 
img = imread( [ 'pictures/' filename ] ); 
  
% --- вибір області зображення -------------------------------
------------- 
% використання інструменту вибору області 
img = imcrop( img ); 
  
% відображення результату 
figure; 
imshow( img ); 
grid on 
title( 'виділена область зображення' ); 
  
% --- розрахунок значень Гаусіана та фільтрація зображення ---
------------- 
% використання матриці 5 x 5, sigma = 2 
G = fspecial( 'gaussian',[5 5],2 ); 
Ig = imfilter( img,G,'same' ); 
  
% відображення результату 
figure; 
imshow(Ig); 
grid on; 
title( 'розмите зображення: [5 5],2' ); 
  
% --- розрахунок значень Гаусіана та фільтрація зображення ---
------------- 
% використання матриці 3 x 3, sigma = 1.2 
G2 = fspecial( 'gaussian',[3 3],1.2 ); 
Ig2 = imfilter( img,G2,'same' ); 
  
% відображення результату 
figure; 
imshow(Ig2); 
grid on; 
title( 'розмите зображення: [3 3],1.2' ); 
% --- розрахунок значень Гаусіана та фільтрація зображення ---
------------- 
% використання матриці 2 x 2, sigma = 0.8 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
30 
Змн. Арк. № докум. Підпис Дата  
 
 
G3 = fspecial( 'gaussian',[2 2],0.8 ); 
Ig3 = imfilter( img,G3,'same' ); 
  
% відображення результату 
figure; 
imshow(Ig3); 
grid on; 
title( 'розмите зображення: [2 2],0.8' ); 
 
 
а) початкове зображення 
  
б) виділена область зображення в) розмите зображення [5 5] 
  
г) розмите зображення [3 4] д) розмите зображення [2 2] 
Рисунок 2.12 - Зображення потяга з різними фільтрами 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
31 
Змн. Арк. № докум. Підпис Дата  
 
 
Гауссівська фільтрація підрівнюваних і затуманиваних квадратних 
підпрограм. 
Лістинг 13 
% --- зчитування зображення ----------------------------------
------------- 
filename = 'tissue.jpg'; 
img = imread( [ 'pictures/' filename ] ); 
  
% виведення зображення 
figure; 
imshow( img ); 
grid on; 
axis tight; 
title( filename); 
  
% --- 2 --- вибір області зображення -------------------------
------------- 
% використання інструменту вибору області 
img = imcrop( img ); 
% img = img( 125+[1:256],1:256,: );  % програмне виділення 
області 
  
% відображення результату 
figure; 
imshow( img ); 
title( 'виділена область зображення' ); 
  
% --- 3 --- розмиття виділеного зображення з використання 
Гаусіана -------- 
% psf - функція розкидання точок 
psf = fspecial( 'gaussian',11,5 ); 
% згортка зображення img з використанням psf 
blurred = imfilter( img,psf,'conv' ); 
  
% відображення результату 
figure;  
imshow( blurred ); 
title( 'розмите зображення 1' ); 
  
% --- 4 --- накладання Гаусового шуму ------------------------
------------- 
% можливі значення v = 0.02, 0.002, 0.001, 0.005 
v = 0.02; 
blurredNoisy = imnoise( blurred,'gaussian',0.000,v ); 
  
figure; 
imshow( blurredNoisy ); 
title( 'зашумлене зображення 1' ); 
  
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
32 
Змн. Арк. № докум. Підпис Дата  
 
 
% --- 5 --- відновлення зображення (етап 1) ------------------
------------- 
% рівень зашумленості 
np = v * prod( size(img) ); 
[ reg1 LAGRA ] = deconvreg( blurredNoisy,psf,np); 
  
% відображення результату 
figure; 
imshow( reg1 ); 
title( 'відновлене зображення 1' ); 
  
% --- 6 --- об'єднання з початковим зображенням --------------
------------- 
psf2 = fspecial( 'gaussian',8,5 ); 
blurred2 = imfilter( img,psf2,'conv' ); 
  
% відображення результату 
figure; 
imshow( blurred2 ); 
title( 'розмите зображення 2' ); 
  
% --- 7 --- накладання шуму ----------------------------------
------------- 
v2 = 0.005; 
blurredNoisy2 = imnoise( blurred2,'gaussian',0.001,v2 ); 
  
% відображення результату 
figure; 
imshow( blurredNoisy2 ); 
title( 'розмите зашумлене зображення 2' ); 
% --- 8 --- відновлення зображення (етап 2) ------------------
------------- 
np2 = v2*prod(size(img) ); 
[ reg2 LAGRA2 ] = deconvreg( blurredNoisy2,psf2,np2 ); 
  
% відображення результату 
figure; 
imshow( reg2 ); 
title( 'відновлене зображення 2' ); 
Альтернативою простим лапласовим фільтрам другого порядку є 
другорядний лапласіан гауссового фільтра. Це впроваджено в Matlab, 
використовуючи параметр log з fspecial функції. 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
33 
Змн. Арк. № докум. Підпис Дата  
 
 
 
  
a) початкове зображення б) виділена область зображення 
  
в) розмите зображення г)  зашумлене зображення 
  
д) відновлене зображення е) розмите зашумлене зображення 
  
є) друге розмите зашумлене ж) друге відновлене зображення 
зображення  
Рисунок 2.13 – Зображення клітин з різними фільтрами 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
34 
Змн. Арк. № докум. Підпис Дата  
 
 
Лістинг 14 
% --- зчитування зображення та конвертація у відтінки сірого -
------------- 
filename = 'circuit.jpg'; 
% g = rgb2gray( imread( [ 'pictures/' filename ] ) ); 
g = imread( [ 'pictures/' filename ] ); 
  
% --- налаштування фільтра та проведення фільтрації ----------
------------- 
k = fspecial( 'log',[ 3 3 ],0.2 ) ; 
h2 = imfilter( g,k ); 
ge = imsubtract( g,h2 );  
  
% відображення результатів 
figure; 
subplot( 3,1,1 ); 
imshow( g ); 
title( filename ); 
  
subplot( 3,1,2 ); 
imagesc( ~h2 ); 
title ( 'фільтроване зображення' ); 
axis image; 
  
subplot( 3,1,3 ); 
imshow( ge ); 
title( 'перетворене зображення' ); 
 
Рисунок 2.14 - Лапласівське покращення зображення  
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
35 
Змн. Арк. № докум. Підпис Дата  
 
 
2.4 Попередня обробка зображення  
Нехай α - скаляр, такий що α ∈ R. Функція (mapping) f: X → Y є лінійною 
функцією, якщо для a, b ∈ X, f (a + b) = f (a) + f (b ) (властивість аддитивності) і 
f(αb) = α f (b) (властивість однорідності). Наприклад, відображення f (x) = x є 
лінійним, оскільки f (a + b) = a + b = f (a) + f (b) і f (αb) = αb = α f (b). Іншими 
словами, графік лінійної функції - пряма. На відміну від цього, нелінійна 
функція є функцією, яка має нелінійний вихід (нелінійна функція не 
задовольняє властивості аддитивності та однорідності лінійної функції). Крім 
того, графік нелінійної функції - це крива лінія. 
 
Рисунок 2.15 - Гаусове ядро f (x; σ = 0.61)  
Приклад. 
Зразок гауссових ділянок ядра. Нехай σ> 0 - параметр шкали, який є 
стандартним відхиленням (середня відстань від середнього значення). Вираз  
називається дисперсією. Середнє значення, середнє або середина набору даних 
позначається μ. У цьому випадку μ = 0 .Функція гауссова ядра f: R→  
визначається як 
 
(23) 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
36 
Змн. Арк. № докум. Підпис Дата  
 
 
це нелінійна функція з вигнутою плоскою ділянкою, такою як ті, що 
показані на рис. 16. У визначенні функції 1D Гауссового ядра f (x; σ), x є 
просторовим параметром, а σ - параметр масштабу. При зменшенні σ 
(наприклад, з σ = 0,41  на рис 8 до σ = 0,81 на рис. 9, а потім на σ = 0,61 на рис. 
10), ширина смуги ядра гауссіани зменшується. З цієї причини σ називається 
параметром ширини. 
 
 
Рисунок 2.16 - Гаусове ядро f (x; σ = 0.41) 
 
Рисунок 2.17 - Гаусове ядро f (x; σ = 0.81) 
Це ядро Гаусса називається 1D (1-мірним) ядром, оскільки для визначення 
ядра використовується лише один просторовий параметр, а саме x.  
Кути в цифровому зображенні забезпечують гарне джерело сітчастих 
генераторів Воронного. Вона отримана з кутів зображення, забезпечує 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
37 
Змн. Арк. № докум. Підпис Дата  
 
 
сегментацію зображення. Кожен сегмент у такій сітці є опуклим 
багатокутником. Мотивація для розгляду такої форми сегментації зображення 
полягає в тому, що полігони сітки надають засіб 
1. Сегментація зображення. Сітки Воронного представляють собою 
прямий спосіб розбиття зображення на непересічні опуклі полігони, які 
полегшують аналіз зображення, а також розуміння образу. 
2.  Розпізнавання об'єкта. Об'ємні кути визначають відмітні 
(впізнавані) опуклі многокутники, які можна розпізнати та порівнювати.  
3.  Розпізнавання образів. Розташування кутових випуклих образів 
являє собою схему зображень, які можна розпізнати та порівнювати. 
Приклад  
Сегментування кольорового зображення. Сегментація зразка кольорового 
зображення показана на рисунку 11. На цьому зображенні сітка Воронного 
виводяться з деяких кутів на цьому зображенні. Заднє колесо в основному 
покрито 7-сторонним опуклим багатокутником. 
Завдяки функціям roipoly або impoly, можна в інтерактивному режимі 
вибрати багатокутну область інтересу в образі. Цей інструмент дозволяє 
використовувати курсор для вибору вершин. Функція повертає подвійне 
зображення, яке може використовуватися як ядро в згортці. Приклад 
використання цього інструменту наведено на рис.11. Після вибору roi, 
натиснувши на вершини багатокутника на зображенні,  roi - це зображення з 
власним правом. Зразок гістограми та bar3 (3D-графік) для вибраного roi 
наведено на рис. 12. 
Щоб вирішити проблему пошуку векторів c, r для roi для зображення g, 
такого як та, що використовується в лістингу 9,  
 (24) 
Потім перепишемо код, використовуючи roipoly, щоб отримати вектори c, 
r, а не вставляти вручну вектори c, r, щоб визначити бажаний roi. 
Лістинг 15 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
38 
Змн. Арк. № докум. Підпис Дата  
 
 
% --- зчитування зображення та конвертація у відтінки сірого -
------------- 
filename = 'bee-polen.jpg'; 
g = rgb2gray( imread( [ 'pictures/' filename ] ) ); 
  
% --- виділення на зображенні області інтересу ---------------
------------- 
[ BW,r,c ] = roipoly( g ); 
B = roipoly( g,r,c );  
  
% відображення результатів 
figure ; 
  
subplot( 1,3,1 ); 
imshow( g ); 
title( 'вихідне зображення' ); 
  
% subplot( 1,3,2 ); 
% imhist( g( B ) ); 
% title( 'гістограма області' ); 
  
subplot( 1,3,2 ); 
bar3( g,0.25,'detached' ); 
colormap( [ 1 0 0; 0 1 0; 0 0 1 ] ); 
title( 'bar3(B,detached)' ); 
  
subplot( 1,3,3 ); 
bar( B,'stacked' ); 
axis square; 
title( 'bar(B,stacked)' ); 
  
% subplot( 1,3,3 ); 
% bar3( npix,'grouped' ); 
% title( 'графік bar3' ); 
  
% subplot( 1,3,3 ); 
% bar3( npix,’stacked’ ); 
% title( 'графік bar3' ); 
 
 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
39 
Змн. Арк. № докум. Підпис Дата  
 
 
 
Рисунок 2.18 - Вибір регіону інтересу 
 
 
Рисунок 2.19 - Вибір регіону інтересу 
 
Однією з головних завдань фільтрації є поліпшення зображення, 
видалення шуму. Для демонстрації основного підходу щодо видалення шумів на 
зображенні, проілюстровано як шум може бути доданий, а потім видалений з 
зображення.  
Функція imnoise полягає у створенні шуму на зображенні. Це робиться 
шляхом додавання одного з наступних типів зображення g та використання 
середньої фільтрації для видалення шуму. 
(Шум 1) 'gaussian': додає білого шуму з середнім значенням m (за 
умовчанням = 0) та дисперсією v (за умовчанням = 0,01), з синтаксисом 
 (25) 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
40 
Змн. Арк. № докум. Підпис Дата  
 
 
(Шум 2) ‘localvar': додає нульовий середній гауссовський білий шум з 
інтенсивністюзалежної дисперсії, з синтаксисом 
 (26) 
(Шум 3) 'Poisson': породжує шум Пуассона з значень пікселів замість 
додавання штучного шуму до значень пікселів, з синтаксисом 
 (27) 
(Шум 4) 'salt & pepper': додає «сіль та перець», на зображення, з 
синтаксисом 
 (28) 
(Шум 5) 'speckle': додає мультиплікативний шум зображення, з 
синтаксисом  
 (29) 
використовуючи рівняння 
 (30) 
де n рівномірно розподілений випадковий шум із середнім 0 і дисперсією 
v (значення за замовчуванням v становить 0,04). 
Лістинг 16 
% --- накладання шуму 'salt & pepper' та виведення результату 
------------- 
nsp = imnoise( g,'salt & pepper',0.05 );  
  
subplot( 3,1,2 ); 
imshow( nsp ); 
title( 'шум "salt & pepper"' ); 
  
% --- накладання шуму 'localvar' та виведення результату -----
------------- 
g = im2double( g ); 
v = g( :,:,: ); 
np = imnoise( g,'localvar',v ); 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
41 
Змн. Арк. № докум. Підпис Дата  
 
 
 
Рисунок 2.20 - Додавання шуму до зображення 
 
Було запропоновано цілий ряд методів виявлення краю (і ліній). Серед 
таких методів фільтрації відмінні ті, що запропоновані Л.Г. Робертс, Превиттом 
Собелем та більш пізні способи перетину фільтрації Лапласа та Нуля. Фільтри 
Лапласа та Нуля впливають на значні покращення у порівнянні з попередніми 
методами виявлення краю. Це видно на рис. 15. 
Лістинг 17 
% --- зчитування зображення та конвертація у відтінки сірого -
------------- 
filename = 'circuit.jpg'; 
g = rgb2gray( imread( [ 'pictures/' filename ] ) ); 
  
% --- виконання фільтрації з різними ядрами ------------------
------------- 
gr = edge( g,'roberts' ); 
gp = edge( g,'prewitt' ); 
gs = edge( g,'sobel' ); 
gl = edge( g,'log' ); 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
42 
Змн. Арк. № докум. Підпис Дата  
 
 
gz = edge( g,'zerocross' ); 
  
% відображення результатів 
subplot( 2,3,1 ); 
imshow( g ); 
title( filename ); 
  
subplot( 2,3,2 ); 
imshow( ~gr ); 
title( 'фільтр Робертса' ); 
  
subplot( 2,3,3 ); 
imshow( ~gp ); 
title( 'фільтр Прюітта' ); 
  
subplot( 2,3,4 ); 
imshow( ~gs ); 
title( 'фільтр Собеля' ); 
  
subplot( 2,3,5 ); 
imshow( ~gl ); 
title( 'фільтр Лапласіаном' ); 
  
subplot( 2,3,6 ); 
imshow( ~gz ); 
title( 'фільтр Zero cross' ); 
 
 
 
 
Рисунок 2.21 - Виявлення краю  за допомогою фільтрів 
Підхід на рис 32 може бути використаний для зміни образу кожного 
відфільтрованого зображення від білих країв на чорному тлі до чорних країв 
білого кольору. Основний підхід у фільтрах виявлення краю полягає в тому, 
щоб згортати n × n сусідів кожного пікселя у зображенні з n × n маскою (або 
ядром фільтра), де n зазвичай є непарним цілим числом. Термін "convolve" 
означає "складання" (roll) разом. Для реального прикладу згортання. Наприклад, 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
43 
Змн. Арк. № докум. Підпис Дата  
 
 
фільтри краю Prewitt і Sobel використовуються для згортання кожного окремого 
зображень 3 × 3 (також називається 8-сусіднім) за допомогою крайового 
фільтра. Поняття 8-сусідства пікселя походить від А. Розенфельда. 
Розташування 8-сусідів Розенфельда - квадратний масив із 8 пікселів, що 
оточують центр пікселів. Prewitt і Собел крайові фільтри являють собою пару з 
3 × 3 масок (одну маска, що представляє градієнт пікселя в напрямку осі х, і 
другу маску для градієнта пікселя в напрямку у) .Matlab виступає в 
горизонтальному напрямку, фільтрації зображення з маскою,  що представляє 
градієнт пікселя у напрямку х. Щоб побачити приклади масок: 
Лістинг 18 
% налаштування фільтрів 
mPrewitt = fspecial( 'prewitt' ) 
mSobel   = fspecial( 'sobel' ) 
mLaplace = fspecial( 'laplacian' ) 
 
 
Рисунок 2.33 - Маски 
Маски, доступні за допомогою спеціальної функції Matlab, сприяють 
горизонтальному напряму. Наприклад, маска Prewitt 3 × 3 визначається як 
(31) 
 
Фільтр Лапласа L (x, y) для визначення краю  - це 2D-ізотропна міра 2-ї 
похідної зображення g з інтенсивністю пікселів g (x, y), визначена 
(32) 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
44 
Змн. Арк. № докум. Підпис Дата  
 
 
Часто використовувана лапласовська маска визначається наступним 
масивом 3 × 3. 
 
(33) 
 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
45 
Змн. Арк. № докум. Підпис Дата  
 
 
РОЗДІЛ 3. ПОШУК ОБ'ЄКТІВ НА ЗОБРАЖЕННІ 
3.1 Визначення країв та ліній у цифрових зображеннях 
Термін "напрямок краю" означає напрямок дотичної до контуру, який 
край визначається у 2D просторі. Канні ввів маску для виявлення напрямку 
краю шляхом згортання лінійної функції детектування краю, вирівняної 
нормально до краю напрямку проекції з проекційною функцією, паралельною 
напряму краю. Проекційна функція вибору є гауссовою. Після того, як 
зображення було зведено з симетричним гаусовим, тоді функція log 
застосовується до згладжених зображень. 
Лістинг 19 
% --- зчитування зображення ----------------------------------
------------- 
filename = 'circuit.jpg'; 
g = imread( [ 'pictures/' filename ] ); 
  
% відображення результату 
subplot( 2,3,1 ); 
imshow( g ); 
title( filename ); 
  
% --- розрахунок гауссіана -----------------------------------
------------- 
g1 = fspecial( 'gaussian',[ 15 15 ],6 ); 
g2 = fspecial( 'gaussian',[ 30 30 ],12 ); 
  
% відображення результату 
subplot( 2,3,2 ); 
imagesc( g1 ); 
title( 'Гаусіан,[15 15],6' ); 
axis image; 
  
subplot( 2,3,3 ); 
imagesc( g2 ); 
title( 'Гаусіан,[30 30],12' ); 
axis image; 
  
% --- виконання згладжування ---------------------------------
------------- 
[ bw,~ ] = edge( rgb2gray( g ),'log' ); 
% відображення результату 
subplot( 2,3,4 ); 
imshow( ~bw,[] ); 
title( 'log-фільтрація' ); 
  
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
46 
Змн. Арк. № докум. Підпис Дата  
 
 
% згладжування за допомогою фільтра Кенні 
[ bw,~ ] = edge( rgb2gray( g ),'canny' ); 
% відображення результату 
subplot( 2,3,5 ); 
imshow( ~bw,[] ); 
title( 'фільтр Кенні' ); 
  
% логарифмічне згладжування 
[ bw,thresh ] = edge( imfilter( rgb2gray( g ),g1 ),'log' ); 
% відображення результату 
subplot( 2,3,6 ); 
imshow( ~bw,[] ); 
title( 'log-згладжування' ); 
 
 
 
Рисунок 3.1 - Визначення краю Канні в circuit.tif 
Метод виявлення краю LoG (Laplacian of Gauss) обчислюється за 
допомогою гаусового згладжування circuit.tif з використанням ядра 3 × 3 зі 
стандартним відхиленням 1.5. Цей підхід до виявлення краю призводить до 
певного поліпшення виявлення краю Канні, застосованого до оригінального 
зображення. Це видно з збільшенням кількості горизонтальних та вертикальних 
країв у фільтрі. Це показано на рисунку 3.1 Також було встановлено, що 
збільшення розміру ядра зменшує продуктивність фільтра LoG. 
Лістинг 20 
filename = 'circuit.jpg'; 
g = imread( [ 'pictures/' filename ] ); 
g0 = fspecial( 'gaussian',[ 3 3 ],1.5 ); 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
47 
Змн. Арк. № докум. Підпис Дата  
 
 
g1 = fspecial( 'gaussian',[ 15 15 ],7.5 ); 
g2 = fspecial( 'gaussian',[ 31 31 ],15.5 ); 
  
% відображення результату 
subplot( 2,3,1 ); 
imagesc( g1 ); 
title( 'g0 = Гаусіан,[3 3],1.5' ); 
axis image; 
  
subplot( 2,3,2 ); 
imagesc( g1 ); 
title( 'g1 = Гаусіан,[15 15],7.5' ); 
axis image; 
  
subplot( 2,3,3 ); 
imagesc( g2 ); 
title( 'g2 = Гаусіан,[31 31],15.5' ); 
axis image; 
  
% --- виконання фільтрації/згладжування та відображення 
результатів ------- 
[ bw,~ ] = edge( rgb2gray( g ),'log' ); 
subplot( 2,3,4 ); 
imshow( ~bw,[] ); 
title( 'log-фільтрація' ); 
  
[ bw,~ ] = edge( rgb2gray( g ),'canny' ); 
subplot( 2,3,5 ); 
imshow( ~bw,[] ); 
title( 'фільтрація Кенні' ); 
  
[ bw,~ ] = edge( imfilter( rgb2gray( g ),g0 ),'log' ); 
subplot( 2,3,6 ); 
imshow( ~bw,[] ); 
title( 'log-згладжування' ); 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
48 
Змн. Арк. № докум. Підпис Дата  
 
 
 
 
 
Рисунок 3.2 - Визначення краю Канні 
Кут визначається як перетин кордонів (наприклад, цільовий піксель, де 
розташовані два домінанти та різні напрямки краю в околиці цільового пікселя). 
Наприклад, кути всередині пунктирних кіл на рисунку 3.2, де кожен кут є 
точкою для пари ребер з різними напрямками краю. У конфлікті з виявленням 
кута є точки відомі як точки інтересу. Точка інтересу - це ізольована точка, яка є 
локальною максимальною або мінімальною інтенсивністю лінією кінця або 
точки на кривій, як хребет (увігнутість вниз) або долини (увігнутість вгору). 
Якщо виявляються лише кути, то виявлені області включатимуть точки 
інтересу. Після цього необхідно виконати пост-обробку, щоб ізолювати реальні 
кути. Результати виявлення кута для kingfisher1.jpg є вражаючими, де 
детектування кутів виконується лише в невеликій області інтересу до 
зображення 
Лістинг 21 
filename = 'house.jpg'; 
g = rgb2gray( imread( [ 'pictures/' filename ] ) ); 
% g = g( 10:250,300:600 ); 
  
% --- використання метрики Харріса ---------------------------
------------- 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
49 
Змн. Арк. № докум. Підпис Дата  
 
 
corners = cornermetric( g,'Harris'); 
corners( corners<0 ) = 0; 
cornersgray = mat2gray( corners ); 
  
% відображення результату 
figure; 
subplot( 1,3,1 ); 
imshow( ~cornersgray ); 
title( 'метрика Харріса' ); 
  
% --- використання метрики мінімального власнго значення -----
------------- 
corners2 = cornermetric( g,'MinimumEigenvalue' ); 
corners2 = mat2gray( corners2 ); 
  
% відображення результату 
subplot( 1,3,2 ); 
imshow( imadjust( corners2 ) ); 
title( 'min eigenvalue' ); 
  
% --- використання метрики imregionalmax ---------------------
------------- 
cornerpeaks = imregionalmax( corners ); 
results = find( cornerpeaks == true ); 
[ r g b ] = deal( g ); 
r( results ) = 255; 
g( results ) = 255; 
b( results ) = 0; 
RGB = cat( 3,r,g,b ); 
  
% відображення результату 
subplot( 1,3,3 ); 
imshow( RGB ); 
title ( 'imregionalmax(corners)' ) ; 
 
Рисунок 3.3 - findcorners.m 
3.2 Застосування діаграм Вороного до аналізу зображення 
Сітка Вороного також називається тесонетою Вороного. Вороне покриття 
цифрового зображення опуклими багатокутниками називається тесселяцією 
Вороного. Це відрізняється від поняття 2D тесселації, яка є покриттям плоскої 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
50 
Змн. Арк. № докум. Підпис Дата  
 
 
області правильними многокутниками. Многокутники у покритті Вороного, як 
правило, не є правильними. Опуклі многокутники у сітці Вороного називають 
областями Воро⊂ного.  
Нехай S  E, кінечномірний нормований лінійний простір. Евклідовим 
літаком є приклад. Елементи∈ S називаються сайтами, щ∈об відрізняти їх від 
інших точок в E. Нехай p  S. Область Вороного p  S (позначена Vp) 
визначається як 
 (34) 
Область Воронного, зображена як перетин кінцевого числа замкнутих 
півплощин. Едельсбруннера де кожна половина площини визначається 
зовнішньоспрямованим нормальним вектором 
Область Вороного сайту ρ  S містить кожну точку площини, яка є 
ближчою до p, ніж до будь-якого іншого сайту в S. Нехай Vp, Vq - це 
багатогранники Вороного ( Наприклад, рис 35). Якщо Vp Vq - лінійний, 
променевий або прямий сегмент, то його називають краєм Вороного. Якщо 
перетин з трьох або більше областей Вороного є точкою, то ця точка 
називається вершиною Вороного. Непуста множина А просторiв X являє собою 
опуклу множину, якщо , для кожного α  [0, 1]. Простий 
опуклий набір - це замкнута половина площини. 
Лемма 1 Перетин вихмо⊂вих множин опуклий.  
Доведення Нехай A, B  ∈  є випуклими множинами і нехай K = A ∩ B. 
Для кожних парних точок x, y  K лінійний відрізок , який з'єднує x та y, 
належить K, оскільки це властивість для всіх точок в A і B. Отже, K є опуклим. 
Лемма.2  Область Вороного з точками являє собою перетин замкнутих 
половинних площин, а кожна з них - опуклий багатокутник 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
51 
Змн. Арк. № докум. Підпис Дата  
 
 
.  
Рисунок 3.4 - Область Вороного Vp = перетин замкнутих півплощин 
Доведення Від визначення замкнутої півплощини. 
 (35) 
Vp - перетин замкнутих півплощин  для всіх q ∈ S - {p} , що утворює 
багатокутник. З лемми 2 Vp випукла. 
З точки зору застосування, сітки Вороного сегментують цифрове 
зображення. Це особливо важливо в тому випадку, коли сайти, що 
використовуються для побудови сітки, мають певне значення в структурі 
зображення. Наприклад, вибравши кути у вигляді зображень, що містять 183 
зображення, як набір сайтів, у кожному районі Вороного сайту p, який має 
властивість, що всі точки в регіоні є найближчими до будь-якого іншого кута на 
зображенні По суті, точки в області Вороного в кутовій ділянці p розташовані 
симетрично навколо певного кута р. Це властивість справедливо для кожного 
регіону Вороного в кутовій сітці. Наступні кроки побудовані на сітці Вороного 
на цифровому зображенні: 
⎯ виберається цифрове зображення Im. 
⎯ виберається верхня межа n за кількістю кутів для виявлення в Im. 
⎯ знаходиться до n кутів у Im. Виявлені кути утворюють набір сайтів.  
⎯ відображаються кути в im.  
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
52 
Змн. Арк. № докум. Підпис Дата  
 
 
⎯ Знаходиться регіон Вороного для кожного сайту. Цей крок 
конструює сітку Вороного для зображення. 
Щоб включити граничні кути зображення в набір сіточних генераторів, 
використовуються наступні кроки. 
1. im: = зображення у градаціях сірого; 
2. [m, n]: = розмір зображення im; % використовувати розмір [im] в Matlab 
3. let C: = набір внутрішніх кутів зображення; 
4 let f c - координати крайніх кутів зображення; 
5. let Cim: = [C; f c]; % Cim містить координати. з усіх кутів 
6. Накладення Cim на зображення im; 
Приклад .  
Кольорове зображення 480x640 показано на рисунку 3.5. Кути 
знаходяться як у повному зображенні на рисунку г), так і у обрізаному 
зображенні на рисунку д). 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
53 
Змн. Арк. № докум. Підпис Дата  
 
 
 
  
а) початкове зображення б) вибрана частина 
  
  
в) діаграми Вороного г) кути на усьому зображенні 
 
  
д) кути на вибраній частині е) діаграми Вороного для усього 
зображення 
Рисунок 3.5 – Виявлення кутів та застосування діаграми Вороного 
 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
54 
Змн. Арк. № докум. Підпис Дата  
 
 
3.3 Методи пошуку ліній на зображенні з використанням градієнтів 
Цей пункт демонструє ефективність включення кутів зображення в безліч 
генераторів при побудові сітки Вороного на 2D цифровому зображенні. Щоб 
накласти сітку Воронного на зображення, використовуючи набір сайтів, що 
включають крайні кути зображення, виконуються наступні дії. 
1. Почати з Cim з кроку 5 у методі "кут зображень"; 
2. let X: = Cim (:, 1), x-координати кутів зображення; 
3. let Y: = Cim (:, 2), y-координати кутів зображення; 
4. let [vx, vy]: = voronoi (X, Y), координати кутів зображення; 
5. накладіть результати на зображення; 
Приклад  
Включивши крайні кути зображення в набір генеруючих точок , одержано 
сітку Вороного, як показано на рисунку 3.7. Звернено увагу на опуклі 
багатокутники навколо частин внутрішніх кутів на рисунку 3.7, які є 
результатом включення крайніх кутів у набір генераторів, які використовуються 
для виведення знімка зображення. 
 
Рисунок 3.11 - Виявлення краю 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
55 
Змн. Арк. № докум. Підпис Дата  
 
 
Для того, щоб знайти кути зображень, часто потрібно виділяти край 
зображень. Основний підхід полягає в обмеженні пошуку кутів зображення до 
частин країв зображення без шуму зображень регіонів, які, як правило, 
оточують кути зображення. Крім того, кут детектування допомагає зменшувати 
край зображень. Основні кроки для цього є наступні. 
1 Знайти градієнти зображення у напрямках x- і y (Gx, Gy). Звернено 
увагу, що кожна пара градієнтів визначає вектор у площині евклідів для 2D-
зображення. 
2 Відтворити градієнтну величину для 
кожного градієнтного вектора зображення. 
3 Нехай magnitudes: = масив градієнтних величин. 
4 Перетворити білі краї, оточені чорними областями, до чорних країв, 
оточених білими областями. Це можна зробити, використовуючи або 
imcomplement Matlab, або комбінацію Mathematica 10 ColorNegate та Binarize, 
щоб досягти збору чітких чорних країв на білому. 
Приклад 
Граничне розрізання за допомогою магнітних градієнтів зображення. 
Зразок вимивання товстих ліній в площині зображення показано на рисунку 
3.12. У цьому зображенні кожен з товстих поверхонь плану кордонів був 
зведений до тонких сегментів лінії. Результатом є колекція тонко облямованих 
великомасштабних опуклих багатокутників. 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
56 
Змн. Арк. № докум. Підпис Дата  
 
 
 
Рисунок 3.12 - Виявлення країв 
 
 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
57 
Змн. Арк. № докум. Підпис Дата  
 
 
РОЗДІЛ 4. ВЖЕ ІСНУЮЧІ СИСТЕМИ КОМП’ЮТЕНОГО ЗОРУ 
  Комп'ютерний зір - це технологія, яка дозволяє комп'ютерам 
інтерпретувати та розуміти візуальну інформацію з реального світу. За 
допомогою алгоритмів машинного навчання, глибоких нейронних мереж та 
обробки зображень, комп'ютери можуть аналізувати та інтерпретувати дані з 
камер, відеозаписів та інших візуальних сенсорів. Ця технологія дозволяє 
автоматизувати процеси, які раніше потребували людського втручання, 
підвищуючи ефективність, точність і безпеку в різних сферах. Завдяки цьому 
комп'ютерний зір вже знайшов широке застосування у багатьох галузях, значно 
впливаючи на їх розвиток. Нижче наведені конкретні рішення, що 
використовують алгоритми комп'ютерного зору, з детальним описом кожного з 
них. 
 4.1 Tesla Autopilot 
 Tesla Autopilot - це передова система допомоги водію, розроблена 
компанією Tesla, яка включає набір функцій, які дозволяють частково 
автоматизувати процес керування автомобілем. Система використовує комплекс 
датчиків, камер, радарів та програмного забезпечення для забезпечення 
безпечного та ефективного керування автомобілем у різних дорожніх умовах. 
 Технологія та компоненти 
 Autopilot використовує апаратне та програмне забезпечення для збору і 
обробки даних з навколишнього середовища. Основні компоненти системи 
включають: 
 Камери: Tesla оснащені високою камерою, яка забезпечує 360-градусний 
огляд навколишнього простору на відстані до 250 метрів. Камери розташовані 
спереду, постраждали та з боків автомобіля, що дозволяє відстежувати об'єкти і 
рух у всіх напрямках[16]. 
 Радари: Один фронтальний радар доповнює камери, дозволяючи бачити 
крізь дощ, туман, пил та навіть попереду транспортні засоби. Радари 
допомагають виявляти об'єкти на великій відстані та з високою точністю. 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
58 
Змн. Арк. № докум. Підпис Дата  
 
 
 Ультразвукові датчики: дванадцять ультразвукових датчиків 
забезпечують виявлення об'єктів навколо автомобіля на відстані до 8 метрів. 
Вони використовуються для точної парковки та об'єктів на малій відстані. 
 Обчислювальний блок: Tesla розробила потужний комп'ютерний блок для 
обробки даних з усіх датчиків і камер. Цей блок використовує спеціалізовані 
алгоритми машинного навчання для прийняття рішень у реальному часі. 
 Tesla приділяє велику увагу безпеці своєї системи. Автопілот постійно 
аналізує дані з датчиків і камер, забезпечуючи безперервний моніторинг 
навколишнього середовища. Система розпізнає деякі загрози і може 
автоматично проводити заходи для уникнення аварій. Основні функції безпеки 
включають: 
Автоматичне екстрене гальмування (AEB): система автоматично активує 
гальма у випадку виявлення неминучої загрози зіткнення. Це дозволяє уникнути 
аварії або зменшити її слідки[17]. 
 Collision Warning: Автомобіль попереджає водія про можливість зіткнення 
з транспортним засобом або об'єктом попереду. Це дозволяє водію вчасно 
реагувати на небезпеку. 
 Lane Departure Warning: Система попереджає водія про ненавмисний 
вихід із смуги руху, допомагаючи уникнути виїзду на зустрічну смугу або 
узбіччя. 
Blind Spot Monitoring: Використовуючи камери і радари, система виявляє 
транспортні засоби в "сліпих зонах" і попереджає водія про якусь небезпеку під 
час перестроювання. 
 Незважаючи на численні переваги, Tesla Autopilot має деякі виклики та 
обмеження. Система поки що не є повністю автономною і вимагає постійної 
уваги водія. Водій повинен бути готовий взяти водіння в будь-який момент і 
відповідати за безпеку руху. Деякі ситуації, такі як складні дорожні умови, 
погана видимість або несподівані перешкоди, можуть вимагати втручання водія. 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
59 
Змн. Арк. № докум. Підпис Дата  
 
 
 Tesla активно працює над вдосконаленням Autopilot, зокрема над 
розвитком повного автономного режиму Full Self-Driving (FSD), який має 
забезпечити повну автоматизацію керування автомобілем у всіх умовах. 
 4.2 John Deere's See & Spray 
John Deere's See & Spray - це інноваційна система точного внесення 
гербіцидів, розроблена для підвищення ефективності сільськогосподарських 
операцій і зменшення витрат на хімікати. Використовуючи технології 
комп’ютерного зору та штучного інтелекту, ця система здатна розпізнавати 
бур’яни серед культурних рослин і цілеспрямовано втратити гербіциди тільки 
на них, мінімізуючи при цьому витрати на хімічні засоби та вплив на 
навколишнє середовище. 
 Технологія та компоненти 
 See & Spray використовує декілька ключових технологій та компонентів 
для досягнення високої точності та ефективності: 
Камери високої роздільної здатності: Камери, встановлені на 
обприскувачах, постійно сканують поле, захоплюючи зображення рослинного 
покриву. Ці камери можуть знімати з високою частотою кадрів, що дозволяє 
точно визначити положення та вид рослин. 
 Алгоритми комп'ютерного зору: Система використовує алгоритми 
машинного навчання для аналізу зображення, отриманого з камери. Ці 
алгоритми були навчені розпізнавати відмінності між культурними рослинами і 
бур'янами, аналізуючи їх форму, колір і текстуру. 
 Використання системи GPS та RTK (Real-Time Kinematic): технологія 
RTK дозволяє системі точно визначити кожну рослину на полі з точністю до 
кількох сантиметрів. Це забезпечує точність прицілювання гербіцидів. 
Інтелектуальні форсунки: Форсунки обприскувача оснащені 
індивідуальними клапанами, які можуть відкриватися і закриватися з високою 
швидкістю та точністю. Це дозволяє цілеспрямовано обробляти тільки бур'яни, 
не торкаючись культурних рослин. 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
60 
Змн. Арк. № докум. Підпис Дата  
 
 
 Переваги системи 
 Використання See & Spray пропонує низку значних переваг для фермерів: 
Зниження витрат на хімікати: цілеспрямоване застосування гербіцидів 
дозволяє значно знизити їх витрати, оскільки обприскати лише бур'яни, а не все 
поле. 
Покращення екологічної безпеки: Менша кількість використаних хімікатів 
означає менший вплив на навколишнє середовище, зокрема на підставі та водні 
ресурси. 
 Збільшення врожайності: Точне внесення гербіцидів забезпечує кращий 
захист культурних рослин від бур’янів, що сприяє їх здоровому росту та 
підвищенню врожайності. 
 Економія часу: Система автоматично виконує всі необхідні операції, що 
дозволяють фермерам економити час на ручному обприскуванні та контролі за 
станом посівів. 
 Попри численні переваги системи John Deere's See & Spray, країні також 
певні дефекти та обмеження, які варто хворіти: 
 1. Висока початкова вартість 
Система See & Spray включає в себе складні технології, такі як 
високоякісні камери, алгоритми комп'ютерного зору, інтелектуальні форсунки 
та GPS-обладнання з RTK. Це означає, що початкова вартість інсталяції та 
впровадження цієї системи може бути досить високою. Для невеликих 
фермерських господарств або тих, що працюють з обмеженими бюджетами, це 
може бути значною перешкодою. 
 2. Технічне обслуговування і надійність 
Складні системи, які пропонують передові технології, потребують 
регулярного технічного обслуговування для забезпечення їх ефективної роботи. 
Високотехнологічні компоненти, такі як камери та інтелектуальні форсунки, 
можуть вимагати частого обслуговування або заміни у разі поломок, що 
збільшує експлуатаційні витрати. 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
61 
Змн. Арк. № докум. Підпис Дата  
 
 
 3. Обмеження в різних умовах 
Ефективність системи See & Spray може зменшуватися в певних умовах, 
таких як погана видимість, сильний дощ, туман або пил. Ці фактори можуть 
вплинути на якість зображення, отриманого камерами, що у вашому сайті може 
сприяти меншій ідентифікації бур'янів і культурних рослин. 
 4. Навчання та адаптація 
Фермерам та операторам може знадобитися додатковий час і ресурси для 
навчання користування системою See & Spray. Це включає не тільки навчання 
роботі з обладнанням, але й розуміння принципів роботи технології та її 
обмеження. Адаптація до нової системи може бути викликом, особливо для тих, 
хто звик до традиційних методів ведення сільського господарства. 
 5. Обмежена універсальність 
Система See & Spray розроблена для спеціальних видів 
сільськогосподарських культур і бур'янів. Це означає, що її ефективність може 
варіюватись у залежності від регіону, типу обґрунтування, кліматичних умов та 
видів культури, які вирощуються. Крім того, система не може бути 
універсальною і може потребувати адаптації для різних умов. 
 6. Належність від програмного забезпечення 
Оскільки система See & Spray використовує складні алгоритми 
комп'ютерного зору і машинного навчання, її ефективність сильно залежить від 
якості програмного забезпечення. Будь-які збої або помилки в програмному 
забезпеченні можуть привести до неточностей у визначені бур'янів і культурних 
рослин, що можна вплинути на результати обприскування. 
 7. Енергоспоживання 
Високотехнологічні компоненти, такі як камери високої роздільної 
здатності та обчислювальні блоки для обробки даних, можуть споживати значну 
кількість енергії. Це може збільшити загальні енергетичні витрати 
фермерського господарства та вимагати додаткових ресурсів для забезпечення 
ефективної системи роботи. 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
62 
Змн. Арк. № докум. Підпис Дата  
 
 
 4.3 Google DeepMind's AI for Eye Disease Detection 
 Google DeepMind's AI for Eye Disease Detection - це передова система, 
розроблена для допомоги в діагностиці захворювань очей, зокрема, ретинопатії, 
дегенерації жовтої плями, діабетичної ретинопатії та інших серйозних очних 
станів. Використовуючи штучний інтелект та глибоке навчання, ця система 
здатна аналізувати зображення сітківки ока і виявляти ознаки хвороби з 
високою точністю. 
 Технологія та компоненти 
 Глибокі нейронні мережі: Система використовує конволюційні нейронні 
мережі (CNN), які є особливо ефективними для обробки та аналізу зображення. 
У цій мережі, навчені на великому обсязі даних, зображені сітківки, в тому 
числі як здорові, так і уражені хворобами ока. 
 Обробка картинки: Алгоритми аналізують скановані зображення сітківки, 
шукаючи характерні ознаки захворювання. Це включає виявлення крововиливів, 
зміни в структурі сітківки, накопичення рідини та інші аномалії. 
 Інтеграція з клінічними даними: Система може інтегрувати дані медичних 
записів для більш точної діагностики, враховуючи хворобу, симптоми та інші 
клінічні фактори. 
 Переваги 
 Висока точність діагностики 
 Алгоритми DeepMind досягають високої точності виявлення очних 
захворювань, що дозволяє лікарям швидше і точніше встановити діагнози. Це 
особливо важливо для раннього захворювання, що може призвести до сліпоти, 
якщо не будуть вчасно відраховані. 
 Змінення навантаження на лікарів 
 Використання AI дозволяє автоматизувати аналіз зображень, зменшуючи 
навантаження на офтальмологів і дозволяючи їм зосереджуватися на лікуванні 
вашої допомоги. Це особливо корисно в умовах дефіциту медичних кадрів та у 
віддалених районах. 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
63 
Змн. Арк. № докум. Підпис Дата  
 
 
 Підвищення доступності медичних послуг 
 Завдяки можливості швидкого і точного аналізу зображення, технологія 
може бути використана в телемедицині, надаючи доступ до високоякісної 
діагностики пацієнтам у віддалених регіонах, де немає доступу до 
офтальмологів. 
 Безперервне навчання та покращення 
 Система здатна постійно вдосконалюватися за рахунок навчання на нових 
даних. Це означає, що з часом точність і ефективність діагностики буде лише 
зростати. 
 Недоліки 
 Високі вимоги до якості даних 
 Для точної діагностики система потребує високоякісних зображень 
сітківки. Погана якість зображення може призвести до неточностей у 
діагностиці, що може бути проблемою в деяких медичних установах з 
обмеженим доступом до сучасного обладнання. 
 Залежність від інфраструктури 
 Інтеграція системи в клінічного практикума вимагає наявності відповідної 
інфраструктури, включаючи комп'ютерні системи, підключення до Інтернету та 
навчального персоналу. Це може бути складним завданням для лікарів у 
країнах, що розвиваються. 
 Проблеми з етичними та правовими аспектами 
 Використання ШІ в медичній діагностиці піднімає питання 
конфіденційності даних, відповідальності за випадки помилкової діагностики та 
інших етичних аспектів. Необхідно розробити чіткі правила безпеки та 
регулювання для забезпечення і правової безпеки. 
 Обмежена адаптація до нових хвороб 
 Хоча система добре працює з певними відомими захворюваннями, вона 
може мати обмеження виявлення нових або рідкісних хвороб, які не були 
включені в початковий набір даних для навчання. 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
64 
Змн. Арк. № докум. Підпис Дата  
 
 
 Моя система виділяється своєю доступністю та універсальністю у 
порівнянні з такими передовими рішеннями, як Tesla Autopilot, John Deere's See 
& Spray і Google DeepMind's AI для діагностики очних захворювань. На відміну 
від цих високотехнологічних і дорогих систем, моя система розроблена для 
використання доступніших компонентів і вимагає менше ресурсів для 
встановлення та обслуговування. Це знижує загальні витрати і робить її 
доступною для ширшого кола користувачів, включаючи невеликі підприємства 
та фермерські господарства. 
 Крім того, моя система є універсальною і може адаптуватися до різних 
галузей та умов використання. Вона легко інтегрується в існуючі 
інфраструктури без значних модифікацій і забезпечує високу ефективність у 
різних контекстах. Завдяки своїй гнучкості, вона може бути налаштована 
відповідно до специфічних потреб користувачів, що робить її привабливим 
вибором для тих, хто шукає ефективне та доступне рішення. 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
65 
Змн. Арк. № докум. Підпис Дата  
 
 
ВИСНОВКИ 
Тему дипломного проекту розкрито в повному обсязі. Описано алгоритм 
обробки зображення та послідовність кроків обробки зображення для виділення 
на зображенні об'єктів різної форми, які можна представити простими 
геометричними фігурами.  
Реалізовано алгоритми обробки зображення. Застосовано лінійні фільтри 
та складні фільтри обробки зображення, що включають в себе лінійну функцію, 
додавання шуму до зображення, виявлення краю зображення, подвійний точний 
лапласовий фільтр, гауссовий фільтр, лапласовий фільтр в цілісній програмі для 
виділення простих геометричних фігур на зображенні. Реалізований пошук 
кутів на зображенні за допомогою побудови сітки Вороного.  
Оглянуто вже готові рішення систем комп'ютерного зору, їхні переваги та 
недоліки. В ході аналізу були розглянуті такі системи, як Tesla Autopilot, John 
Deere's See & Spray та Google DeepMind's AI для діагностики очних 
захворювань. Було виявлено, що ці системи мають високу точність і 
ефективність у своїх специфічних галузях застосування, проте вони також 
характеризуються значними витратами на впровадження і обслуговування, а 
також можуть мати обмежену універсальність. 
У контексті розробленої системи, головною перевагою є її доступність та 
універсальність. Використання менш дорогих компонентів і оптимізація 
процесу обробки зображень дозволяють знизити загальні витрати, роблячи 
технологію доступнішою для широкого кола користувачів. Завдяки 
універсальності, система може бути адаптована до різних галузей і умов 
застосування, що підвищує її практичну цінність. Вона легко інтегрується в 
існуючі інфраструктури і забезпечує високу ефективність у різних контекстах, 
включаючи промислове виробництво, медицину, автоматизацію процесів та 
інші сфери. 
 Розроблена система також демонструє високу точність у виділенні та 
класифікації об'єктів різної форми. Це досягається завдяки комбінації лінійних і 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
66 
Змн. Арк. № докум. Підпис Дата  
 
 
складних фільтрів обробки зображень, що забезпечує ефективне зменшення 
шуму, підвищення контрастності, виявлення контурів та ідентифікацію 
геометричних характеристик об'єктів. Пошук кутів за допомогою сітки 
Вороного дозволяє точно визначати ключові точки на зображенні, що є 
важливим для подальшого аналізу і класифікації. 
Таким чином, дипломний проект демонструє успішну реалізацію 
комплексного підходу до обробки зображень, що включає сучасні методи та 
алгоритми для виділення та класифікації об'єктів. Система відзначається 
доступністю, універсальністю і високою точністю, що робить її ефективним 
інструментом для широкого спектра застосувань у різних галузях. 
 
  
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
67 
Змн. Арк. № докум. Підпис Дата  
 
 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 
1. James F.Peters. ” Foundations of Computer Vision”. Intelligent Systems 
Reference Librar, 145-198, 2017. 
2. John Canny, ”A computational approach to edge detection.” IEEE Transactions 
on PAMI, 8(6):679–698, 1986. 
3. TMS320C64x+ DSP Image/Video Processing Library (v2.0.1) 
4. Vision Library (VLIB) Application Programming Interface Reference Guide 
(SPRUG00). Describes the VLIB Application Programming Interface (v2.1) 
5. Castleman, K.R., Digital Image Processing, Prentice Hall, 1995 
6. Scott Konishi, Alan Yuille, James Coughlin, and Song Chun Zhu, ”Statistical 
edge detection: Learning and evaluating edge cues.” IEEE Transactions on 
PAMI, 25(1):57–74, 2003. 
7. William Freeman and Edward Adelson, ”The design and use of steerable 
filters.” IEEE Transactions on PAMI, 13:891–906, 1991. 
8. David Martin, Charless Fowlkes, and Jitendra Malik, ”Learning to detect natural 
image boundaries using local brightness, color, and texture cues.” IEEE 
Transactions on PAMI, 26(5):530–549, 2004. 
9. R. Deriche, Using Canny's criteria to derive a recursively implemented optimal 
edge detector, Int. J. Computer Vision, Vol. 1, pp. 167–187, April 1987. 
10. Lindeberg, Tony "Edge detection and ridge detection with automatic scale 
selection", International Journal of Computer Vision, 30, 2, pp 117—154, 1998. 
(Includes the differential approach to non-maximum suppression.) 
11. Молчанова М.О. Протасов М.В. Дослідження впливу параметрів навчання 
когнітрону на якісить розпізнавання вихідних образів: 2014. – 246 c. 
12. Fukushima K. Cognitron. A self-organizing multilayered neural network.1975 
13. Каллан Р. Основные концепции нейронных сетей.2001- 291c. 
14. Насрутдинов М. Ф.  Робота в Matlab 2010 - 14 c. 
15. Michael Paluszek and Stephanie Thomas Matlab Reecipes 2015 - 316 c.  
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
68 
Змн. Арк. № докум. Підпис Дата  
 
 
16. Naik, A. R. (2021, July 13). All The Innovations By Tesla Beyond Electric 
Cars. In Analytics India  Magazine.   
17. Min, C. (2021, November 3). Talking about the history of driverless cars (V) - 
Tesla Autopilot evolution history. In Zhihu 
18. Suherman, R. N. (2023). ELECTRICITY MANAGEMENT SYSTEM WITH  
TECHNOLOGY INTERNET OF THINGS. 
19. С. Забара. Моделювання  систем у середовищі MATLAB 2011. 
20. Cun, X., Pun, C. M., & Shi, C. (2020, April). Towards ghost-free shadow 
removal via dual hierarchical  aggregation network and shadow matting gan. In 
Proceedings of the AAAI Conference on Artificial Intelligence (Vol. 34, No. 07, 
pp. 10680-10687) 
21. Inoue, N., & Yamasaki, T. (2020). Learning from synthetic shadows for shadow 
detection and  removal. IEEE Transactions on Circuits and Systems for Video 
Technology 
22. Abro, A. A. (2021). Vote-based: Ensemble approach. Sakarya University 
Journal of Science 
23. Gonzales C. Rafael, Woods E. Richard, Digital image Processing, Prentice Hall, 
2002 New York 
24. Gonzales C. Rafael, Woods E. Richard, Eddins L. Steven, Digital Image 
Processing using MATLAB, Prentice Hall, 2002 New York. 
25. Marchand Patrick, Holland O. Thomas, Graphics and GUIs with MATLAB, 
Chapman & Hall/CRC, 2002. 
26. Gürcan, E. "Computer Vision in Industrial Automation." Master Thesis, Yildiz 
Technical University, 2008. 
27. Shu  C. and Gerhardrothrogerscom  G. R., "Introduction to Computer Vision 
What  is Computer Vision? The goal of computer vision is to develop Machine 
Vision General visual perception is hard, " pp. 1–12, 2008. 
28. Yetik  İ.Ş., ELE 473-573  "Digital Image Processing -  Projects", 2015 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
69 
Змн. Арк. № докум. Підпис Дата  
 
 
29. Golnabi, Hossein, and A. Asadpour. "Design and application of industrial 
machine vision systems." Robotics and Computer-Integrated Manufacturing 
23.6 (2007). 
30. Snyder, Wesley E., and Hairong Qi. Machine vision. Vol. 1. Cambridge 
University Press, 2004. 
31. Kattan P.I. Matlab For Beginners: AGentle Approach, Createspace, 2008. 
32. Bennett K., editor,. Matlab.Applications for the Practical Engineer,IntechOpen 
London UK, 2014. 
33. KatsikisV., editor, Matlab AFundamental Tool for ScientificComputing and 
EngineeringApplications - Volume 1, IntechOpen,London UK, 2012. 
34. Assi A., editor, EngineeringEducation and Research Using MatlabIntechOpen 
London UK 2011. 
35. Elmer, K.; Soffer, R.J.; Arroyo-Mora, J.P.; Kalacska, M. ASDToolkit: ANovel 
Matlab Processing Toolbox forASD Field Spectroscopy Data. 2020. 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
70 
Змн. Арк. № докум. Підпис Дата  
 
 
ДОДАТОК А – ОБРОБКА ЗОБРАЖЕНЬ У ЗАДАЧАХ 
КОМП'ЮТЕРНОГО ЗОРУ (UA.ЧДТУ.242254-01 12 01-1) 
 
 
Лист 
ЧДТУ.242254.001 ПЗ 
71 
Змн. Арк. № докум. Підпис Дата