- •Міністерсво освіти і науки України
- •I.Основні методи покращення цифрових зображень:
- •1.1. Модель цифрового зображення;
- •1.2. Загальна характеристика методів покращення цифрового зображення;
- •1.2.1. Методи просторової області;
- •1.2.2. Методи згладжування зображень;
- •1.2.3. Методи підсилення різкості;
- •II.Загальна характеристика системи matlab;
- •III.Яке покращення відбулося на зображенні за допомогою системи matlab;
II.Загальна характеристика системи matlab;
Робота у середовищі MatLAB може відбуватися у двох режимах:
1) в режимі калькулятора, коли формули вводяться в командному вікні, туди ж виводяться результати обчислення, користувач може присвоювати результати змінним, керувати пам’яттю, викликати та використовувати вбудовані функції, будувати графіки;
2) шляхом виконання програми, написаної користувачем на мові MatLAB. MatLAB надає не тільки мову програмування високого рівня, а також має функції, властиві операційним системам. Він має багато можливостей, які забезпечують діалог з користувачем у режимі командного рядку або з графічним інтерфейсом, перегляд робочої області та шляхів доступу до файлів MatLAB, редактор m-файлів, можливість експорту та імпорту даних іншим апаратним та програмним системам.
До системи MatLAB разом з вбудованими функціями входять пакети прикладних програм (toolbox), в яких зібрані функції, присвячені вирішенню спеціалізованих інженерних задач, наприклад:
– Signal Processing Toolbox (Обробка сигналів) – набір програм для детермінованого, статистичного та спектрального аналізу, апроксимації передавальних функцій, побудови фільтрів зі скінченною та безкінечною імпульсними характеристиками, фільтрації, параметричного моделювання сигналів, обробки звуку, модуляції, генерування стандартних сигналів, розрахунку когерентності та кореляції; – Image Processing Toolbox (Обробка зображень) – програми для візуалізації зображень різних форматів, обробки та аналізу зображень, фільтрації, роботи з кольорами;
– Statistics Toolbox (Статистика) – набір програм для оцінки параметрів законів розподілу, функцій густин імовірностей, генерації випадкових чисел, побудови лінійних та нелінійних моделей випадкових сигналів, кластерного аналізу та аналізу незалежних компонент, перевірки гіпотез;
– Mapping Toolbox (Робота з картами) – програми для обробки картографічних даних;
– Symbolic Math Toolbox (Символьна математика) – програми для символьних обчислень та спрощень символьних виразів;
– Fuzzy Logic Toolbox (Нечітка логіка) – програми для реалізації апарату нечіткої логіки;
– Neural Network Toolbox (Нейронні мережі) – програми для створення нових нейронних мереж, їх навчання за різними алгоритмами та для оцінки їх роботи;
– Wavelet Toolbox (Вейвлет) – програми для проведення вейвлет-розкладу сигналів у базисах вейвлетів, створення вейвлет-фільтрів, стиснення і знешумлення сигналів за допомогою вейвлетів;
– Control System Toolbox (Системи управління) – набір програм для моделювання лінійних інваріантних в часі систем, аналізу моделей у часовій та частотній областях; 7
– Optimization Toolbox (Оптимізація) – одномірна та багатомірна мінімізаціяфункцій, пошук нулів та екстремумів, вирішення задач лінійного та квадратичного програмування;
– Matrix functions - numerical linear algebra (Матричні функції – чисельна лінійна алгебра)
– набір програм для дослідження матриць (обчислення слідів, норм, рангу, визначників), вирішення алгебраїчних рівнянь, обернення матриць, факторизації, обчислення власних векторів та власних значень, матричних функцій;
– Data Acquisition Toolbox (реєстрація даних) – програми для отримання даних з зовнішніх пристроїв.
Робоча область MatLAB – це область пам‘яті, у якій розташовані змінні, з якими працює система MatLAB.
Основним призначенням пакету Image Processing Toolbox є використання відомих математичних способів обробки зображень, а також створення програмних засобів для такої обробки. Найбільш розповсюдженою у цифровій обробці зображень є растрова (точкова) графіка, при якій зображення будується із багатьох точок-пікселів (pixel – picture element) та має структуру растру. Піксель – прямокутний елемент зображення, що має растрові координати та атрибути (розмір, колір, прозорість). Колір пікселя характеризується глибиною – кількістю бітів, які необхідні для задання кольору. У середовищі MatLAB є можливість роботи з чотирма типами растрових зображень:
– бінарні (binary) – складаються з пікселів, що можуть мати лише два кольори, як правило, чорний (0, піксел видимий на білому фоні), та білий (1). Матриця, що представляє бінарне зображення, складається з нулів та одиниць, кожен елемент матриці відповідає кольору відповідного пікселя;
– напівтонові (grayscale) – мають пікселі, колір яких є відтінками сірого кольору. Матриця зображення складається з елементів, значення яких лежать в межах від 0 (чорний) до 1 (білий) та задають відтінок;
– палітрові, індексні (indexed) – зображення складається з матриці та палітри кольорів (набору триплетів інтенсивності червоного, зеленого та синього). Кожний елемент матриці містить індекс того триплету у палітрі (карті кольорів, colormap), який відповідає кольору даного пікселя;
– повнокольорові RGB – зображення представляється тривимірним масивом, який містить відносні яскравості кольорів для кожного пікселя.
MatLAB підтримує такі формати графічних файлів:
BMP – Microsoft Windows Bitmap;
HDF – Hierarchical Data Format;
JPEG – Joint Photographic Experts Group;
PCX – Paintbrush;
PNG – Portable Network Graphics;
TIFF – Tagged Image File Format;
XWD – X Windows Dump.
MatLAB працює з такими класами даних:
double – дійсні числа з плаваючою комою подвійної точності в діапазоні від -10308 до 10308 (8 байт на число).
uint8 – цілі без знаку в інтервалі (0…255) (1 байт на число).
uint16 – цілі без знаку в інтервалі (0…65535) (2 байти на число).
uint32 – цілі без знаку в інтервалі (0…4294967295) (4 байти на число).
int8 – цілі із знаком в інтервалі (-128…127) (1 байт на число).
int16 – цілі із знаком в інтервалі (-32768…32767) (2 байти на число).
int32 – цілі іззнаком в інтервалі (-2147483648…2147483647) (4 байти на число).
single – дійсні числа з плаваючою комою звичайної точності в діапазоні від -1038 до 1038 (4 байти на число).
сhar – символи (букви та цифри) (2 байти на символ).
logical – значення 0 або 1 (1 байт на елемент).
MATLAB (англ. «Matrix Laboratory») термін, що відноситься до пакету прикладних програм для вирішення завдань технічних обчислень, а також до використовуваної в цьому пакеті мови програмування. MATLAB працює на більшості сучасних операційних систем, включаючи Linux, Mac OS і Microsoft Windows. MATLAB, як мова програмування, була розроблена в кінці 1970-х років з метою полегшення процесів програмування для студентів (мова розділу Simulink отримала назву візуального проектування). Нова мова була з великим інтересом зустрінута вченими, що працюють в області прикладної математики. Вдосконалений варіант MATLAB на мові С з'явився в 1984 р. Спочатку MATLAB призначався для проектування систем управління, але швидко завоював популярність в багатьох інших наукових і інженерних областях. Він також широко використовувався і в освіті, зокрема, для викладання лінійної алгебри і чисельних методів. Мова MATLAB є високорівневою інтерпретуємою мовою програмування, що включає засновані на матрицях структури даних, широкий спектр функцій, інтегроване середовище розробки, об'єктно- орієнтовані можливості і інтерфейси до програм, написаних на інших мовах програмування.
Основною особливістю мови MATLAB є його широкі можливості по роботі з матрицями, які творці мови виразили в гаслі «думай векторно» (англ. Think vectorized). MATLAB надає користувачеві велику кількість (декілька сотень) функцій для аналізу даних, що покривають практично всі області математики.
MATLAB надає зручні засоби для розробки алгоритмів, включаючи високорівневі з використанням концепцій об’єктно-ориєнтованого програмування. У ньому є всі необхідні засоби інтегрованого середовища розробки, включаючи отладчик і профайлер. Функції для роботи з цілими типами даних полегшують створення алгоритмів для мікро контролерів і інших застосувань, де це необхідно.
У складі пакету MATLAB є велика кількість функцій для побудови графіків, зокрема тривимірних, візуального аналізу даних і створення анімованих роликів. Вбудоване середовище розробки дозволяє створювати графічні інтерфейси користувача з різними елементами управління, такими як кнопки, поля введення і іншими. За допомогою компоненту MATLAB Compiler ці графічні інтерфейси можуть бути перетворені в самостійні застосування, для запуску яких на інших комп'ютерах необхідна бути встановлена бібліотека MATLAB Component Runtime.
Пакет MATLAB містить функції, які дозволяють йому діставати доступ до інших додатків середовища Windows так само, як і цим застосуванням діставати доступ до даних MATLAB, за допомогою технології динамічного обміну даними (DDE). Інтерфейс для послідовного порту пакету MATLAB забезпечує прямий доступ до периферійних пристроїв, таким як модеми, принтери і наукове устаткування, що підключається до комп'ютера через послідовний порт (COM - порт). Інтерфейс працює шляхом створення об’єкту спеціального класу для послідовного порту. Наявні методи цього класу дозволяють читати і записувати дані в послідовний порт, використовувати події і обробники подій, а також записувати інформацію на диск комп'ютера в режимі реального часу. Це буває необхідно при проведенні експериментів, симуляції систем реального часу і для інших застосувань. Для MATLAB є можливість створювати спеціальні набори інструментів (англ. toolbox), що розширюють його функціональність. Наборами інструментів є колекції функцій, написаних на мові MATLAB для вирішення певного класу завдань. Компанія Mathworks поставляє набори інструментів, які використовуються в багатьох областях.
Основою MATLAB є рішення математичних задач з простим інтерфейсом та досить малими можливостями стилізації текстів. В рамках останнього немалі переваги мають текстові процесори класа Word, які дозволяють в рамках одного документу створювати опис з любим стилем, кольором та розміром символів, добавляти до цього опису малюнки, математичні формули та графіки функцій. Але ці об’єкти не можуть взаємодіяти при зміні даних, що описують дану задачу.
Notebook (Блокнот) – це спеціальний пакет системи MATLAB, що дозволяє готовити за допомогою текстового процесора (редактора) Microsoft Word електронні документи (книги) з повноцінним текстовим описом, з різноманітним стильовим оформленням і “живими” прикладами.
Notebook забезпечує об`єднання можливостей текстових процесорів класа Word з можливостями MATLAB шляхом вставки в будь-які тексти документів, створюваних цими редакторами, діючих комірок вводу та виводу. При цьому зміна вхідних даних в комірках вводу веде до зміни результатів обчислень в пов’язаних з ними комірках виводу. Це і забезпечує “оживлення” окремих прикладів та електронних книг на базі додатка Notebook. В комірках виводу може відображуватися будь-яка інформація – числа, вектори, матриці, малюнки тощо. Але слід зауважити, що використання своїх .m-файлів та вставка повноцінної анімації MATLAB без використання пакету Simulink неможливо, цю проблему ми не будемо досліджувати.
Також потрібно відмітити, що MATLAB не дозволяє готувати документи, в яких містяться малюнки, графіки – вони створюються в окремих вікнах. Не можливо в MATLAB відображати і математичні формули в їх звичайному вигляді. Це створює труднощі при читанні документу. Документи, які готує Notebook, можуть містити всі ці елементи і мати вигляд листа книги.
В основі Notebook лежить механізм динамічного зв’язку (DDE – Dynamic Data Exchange) між різними додатками в операційній системі Windows. При цьому можлива передача змінених даних з одного додатку в інший і навпаки. Додатки (що передають дані) називаються сервером, а ті що приймають дані – клієнтами. В системі “Word – MATLAB”, що реалізована в Notebook, вони обидва можуть виконувати роль сервера та клієнта.
Назва системи скорочена від Matrix Laboratory – Матрична лабораторія. Саме це є відмінністю системи – орієнтація на роботу з векторами і масивами даних у матричній і комплексній формах. Система сумісна із програмами, що написані на мовах FORTRAN, C та C++.
Система, окрім використання загальних математичних функцій, надає багато можливостей з інженерних розрахунків, проектних та дослідницьких робіт: розв’язання систем алгебраїчних та диференційних рівнянь, роботу із аналоговими та цифровими сигналами, проектування аналогових та цифрових фільтрів, дослідження частотних, імпульсних та перехідних характеристик, виконання спектрального аналізу та синтезу, зокрема прямого та зворотного перетворення Фур’є, розв’язання задач оптимізації і багато інших. Система MATLAB є відкритою і постійно удосконалюється.
Система має особисту М - мову. Позитивними її рисами є порівняно невелика кількість операторів і необов’язковість обирання типів та розмірів змінних. На відміну від деяких мов, в MATLAB відсутні глобальні змінні, дія котрих розповсюджувалась би на всі програмні одиниці. Але при цьому MATLAB має цінну можливість, яка відсутня в інших програмах – дозволяє в одному і тому ж сеансі роботи виконувати кілька самостійних програм, причому всі змінні цих програм становляться спільними і утворюють єдиний робочий простір (WorkSpace).
Система MATLAB забезпечує отримання якісної двох- та трьохвимірної графіки і надає різноманітні можливості редагування цих графіків.
Одною із найбільш привабливих особливостей системи MATLAB є наявність в неї наочного та ефективного засобу створення програмних моделей – пакету візуального програмуванняSimulink. Пакет дозволяє проводити дослідження (моделювання у часі) поведінки динамічних лінійних та нелінійних систем. Програма створюється в діалоговому режимі, шляхом зборки на екрані схеми з’єднань елементарних ланок (блоків). В результаті отримуємо так звану S - модель (файл із розширенням *.mdl). Такий процес створення програми має назву візуального програмування. В процесі моделювання є можливість спостерігати процес за допомогою спеціальних засобів вимірювання, які виглядають наочно, як наприклад, осцилограф або цифровий дисплей.
Досить часто необхідно оформляти технічні документи, які містять блок-схеми функціональних моделей систем, а також графічні результати моделювання в середовищі MATLAB – Simulinkу текстовому редакторі MS Word.
Різноманітні графічні результати, а також Simulink-моделі можна безпосередньо роздрукувати на принтері, виконавши команду Print з пункту основного меню File або скориставшись відповідною кнопкою на панелі інструментів для всіх вікон, які містять основне меню настроювання. Однак для оформлення різних документів цього явно недостатньо, особливо коли доводиться отримані малюнки розміщувати поруч з текстом.
Для розміщення блок-схеми Simulink-моделі у вигляді рисунка в редактор MS Word необхідно виконати команду Copy model to clipboard з пункту основного меню Edit вікна моделі, яка виконує копіювання всієї схеми в буфер обміну.
Спроба виділити всю модель (команда Select all з пункту меню Edit), а потім помістити її в буфер обміну командою Copy, призведе до того, що скопійовану модель можна буде вставити з буфера обміну тільки у вікно моделі Simulink і не вийде цього зробити в редакторі MS Word.
