- 1. Обробка зображень за допомогою вікна редактора MATLAB
- 2. Обробка зображень за допомогою графічного інтерфейсу MATLAB
- Створення графічного інтерфейсу користувача MATLAB для обробки зображень
- Код графічного інтерфейсу користувача MATLAB для обробки зображень
- Запустіть графічний інтерфейс MATLAB для обробки зображень
Уявіть, що ви вказуєте камеру на якийсь об’єкт, і камера повідомляє вам ім’я цього об’єкта, так, Google Lens у смартфонах Android робить те саме, використовуючи обробку зображень. Це дає комп’ютеру бачення виявляти і розпізнавати речі та вживати відповідних дій. Обробка зображень має безліч додатків, таких як розпізнавання та розпізнавання обличчя, відбиток великого пальця, доповнена реальність, OCR, сканування штрих-коду та багато іншого. Існує безліч програмних засобів, доступних для обробки зображень, серед них MATLAB є найбільш підходящим для початку.
MATLAB може виконувати багато попередніх операцій з обробки зображень, але для початку роботи з обробкою зображень у MATLAB тут ми пояснимо деякі основні операції, такі як RGB до сірого, обертання зображення, двійкове перетворення тощо. Ви можете додатково створювати автоматизовані програми для видалення шуму, зображення чіткість, фільтрація за допомогою функцій, описаних у цьому посібнику.
Перш ніж продовжувати далі, якщо ви новачок у MATLAB, ви можете переглянути наші попередні підручники з MATLAB для кращого заниження:
- Початок роботи з MATLAB: короткий вступ
- Взаємодія Arduino з MATLAB - блимає світлодіод
- Управління двигуном постійного струму за допомогою MATLAB та Arduino
- Управління кроковим двигуном за допомогою MATLAB та Arduino
- Як побудувати графік температури в реальному часі за допомогою MATLAB
У MATLAB, як завжди, існує два способи виконати будь-який алгоритм обробки зображень, один - безпосереднім введенням команди у вікно редактора / команди, а інший - створенням графічного інтерфейсу для того самого. Тут ми покажемо вам обидва методи для виконання основних операцій обробки зображень у MATLAB.
1. Обробка зображень за допомогою вікна редактора MATLAB
Тепер ми напишемо код для виконання деяких основних операцій обробки зображень у вікні редактора. Щоб ознайомитися з усією основною термінологією, яка використовується в MATLAB, перейдіть за посиланням. Скопіюйте та вставте наведений нижче код у вікно редактора, a = непрочитане ('F: \ дайджест схеми \ обробка зображень за допомогою matlab \ camerman.jpg'); підзадумка (2,3,1); imshow (a); b = rgb2gray (a); підзадумка (2,3,2); imshow (b); c = im2bw (a); підзадумка (2,3,3); imshow (c); d = неправильно (b); підзадумка (2,3,4); imshow (d); e = a; e = rgb2gray (e); підзадумка (2,3,5); імгіст (е); imfinfo ('F: \ дайджест схеми \ обробка зображень за допомогою matlab \ beard-man.jpg') = розмір (а) % кольорова карта ('весна')
У змінній 'a' ми імпортуємо зображення за допомогою команди imread ('ім'я файлу'), а потім робимо графік рядка '2' та стовпця '3', використовуючи підзапис (рядок, стовпець, позиція) та відображаємо імпортоване зображення на позиції ' 1 '. Для показу зображення ми використовуємо команду imshow ('ім'я файлу') .
Нижче наведено кілька команд для виконання базової обробки завантаженого зображення:
- У змінній 'b' ми перетворюємо зображення RGB в зображення інтенсивності у відтінках сірого за допомогою команди rgb2gray ('ім'я файлу') та відображаємо його в графіку в позиції '2'.
- У змінній 'c' ми перетворюємо зображення у двійкове зображення, або ви можете сказати у форматі '0' (чорний) та '1' (білий), використовуючи команду im2bw ('ім'я файлу') та відображаючи його у графіку на позиція '3'.
- У змінній 'd' ми коригуємо або відображаємо значення інтенсивності зображень у відтінках сірого за допомогою команди imadjust ('ім'я файлу') та відображаємо її на графіку в позиції '4'.
- У змінній 'e' ми складаємо гістограму зображення у відтінках сірого за допомогою команди imhist ('ім'я файлу') та відображаємо її на графіку в позиції '5'. Для побудови гістограми вам завжди потрібно перетворити зображення у відтінки сірого, і тоді ви зможете побачити гістограму цього графічного файлу.
- Команда Imfinfo ('ім'я файлу з місцем розташування') використовується для відображення інформації про графічний файл.
- Команда = size ('filename') використовується для відображення розміру та колірних площин певного графічного файлу.
- colormap ('spring') використовується для зміни типу кольорової карти графічного файлу. Тут у своєму коді я встановив цю команду як коментар, але ви можете використовувати її, видаливши знак відсотка. У MATLAB існує багато типів кольорів, таких як Jet, HSV, Hot, Cool, Summer, Autumn, Winter, Grey, Bone, Copper, Pink, Lines і spring.
Як і ці, у MATLAB існує декілька команд, які можна використовувати для виконання різних завдань. Ви можете перевірити функції обробки зображень у MATLAB, перейшовши за посиланням.
2. Обробка зображень за допомогою графічного інтерфейсу MATLAB
Створення графічного інтерфейсу користувача MATLAB для обробки зображень
Для побудови графічного інтерфейсу (графічного інтерфейсу користувача) для обробки зображень запустіть графічний інтерфейс, набравши в командному вікні команду нижче.
путівник
Відкриється спливаюче вікно, після чого виберіть новий порожній графічний інтерфейс, як показано на малюнку нижче,
Тепер нам потрібно вибрати кількість кнопок (кожна кнопка буде виконувати різне завдання) та одну вісь для відображення зображення.
Щоб змінити розмір або змінити форму кнопки або осей, просто натисніть на неї, і ви зможете перетягнути кути кнопки. Двічі клацнувши будь-яку з них, ви зможете змінити колір, рядок, тег та інші параметри цієї кнопки. Після налаштування це буде виглядати так
Ви можете налаштувати кнопки відповідно до вашого вибору. Тепер, коли ви це зберігаєте, у вікні редактора MATLAB генерується код. Відредагуйте згенерований код, щоб задати завдання для різних кнопок. Нижче ми відредагували код MATLAB.
Код графічного інтерфейсу користувача MATLAB для обробки зображень
Повний код MATLAB для обробки зображень за допомогою графічного інтерфейсу користувача MATLAB подано в кінці цього проекту. Далі ми додаємо сюди для завантаження файл графічного інтерфейсу (.fig) і файл коду (.m), за допомогою якого ви можете налаштувати розмір кнопок або осей відповідно до ваших вимог. Ми відредагували згенерований код, як описано нижче.
У функції 'uploadimage' скопіюйте та вставте наведений нижче код, щоб вставити файл із ПК. Тут команда uigetfile ('тип розширення зображення') використовується для імпортування зображення в графічному інтерфейсі MATLAB. Прочитайте цей файл за допомогою команди imread (), а потім покажіть його за допомогою команди imshow () на axes1 за допомогою осей (handles.axes1) . Тепер, за допомогою команди setappdata (), збережіть змінну в графічному інтерфейсі, щоб змінна була доступна одній частині графічного інтерфейсу до іншої частини графічного інтерфейсу.
a = uigetfile ('. jpg') a = непрочитане (a); сокири (ручки.оси1); imshow (a); setappdata (0, 'a', a)
Тепер у кожній функції ви побачите команду getappdata (), яка використовується для отримання даних, які зберігаються за допомогою setappdata () у графічному інтерфейсі.
Тут ми пояснимо вісім часто використовуваних функцій при обробці зображень
С. Ні. |
Команда |
Назва кнопки |
Завдання, яке потрібно виконати |
1. |
uigetfile () |
Завантажити зображення |
Клацніть, щоб імпортувати зображення з диска |
2. |
rgb2gray () |
RGB в Сірий |
Клацніть, щоб перетворити зображення RGB у відтінки сірого |
3. |
im2bw () |
Перетворити на двійкове зображення |
Клацніть, щоб перетворити зображення у двійкове |
4. |
- |
СКИНУТИ |
Клацніть, щоб скинути зображення як оригінальне |
5. |
імгіст () |
Гістограма |
Клацніть, щоб побачити гістограму зображення |
6. |
недоповнення () |
Зображення доповнення |
Клацніть, щоб перевірити зображення доповнення |
7. |
край (ім'я файлу, метод) |
Виявлення краю |
Клацніть, щоб виявити краї зображення |
8. |
імротувати (ім'я файлу, кут) |
Поверніть за годинниковою стрілкою |
Клацніть, щоб повернути зображення за годинниковою стрілкою |
9. |
імротувати (ім'я файлу, кут) |
Поверніть проти годинникової стрілки |
Клацніть, щоб повернути зображення в напрямку проти годинникової стрілки |
1. Перетворіть зображення RGB у відтінки сірого
У функції 'rgb2gray' скопіюйте та вставте наведений нижче код, щоб перетворити зображення RGB у відтінки сірого за допомогою команди rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2gray (a); сокири (ручки.оси1); imshow (agray);
2. Перетворити на двійкове зображення
У функції 'im2bw' скопіюйте та вставте наведений нижче код, щоб перетворити зображення у двійкове зображення, або ви можете сказати у форматі '0' (чорний) та '1' (білий) за допомогою команди im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); сокири (ручки.оси1); imshow (abw);
3. Скидання до оригінального зображення
У функції "скидання" скопіюйте та вставте наведений нижче код, щоб скинути відредаговане зображення в оригінальне зображення.
a = getappdata (0, 'a'); сокири (ручки.оси1); imshow (a);
4. Гістограма графічного зображення
У функції "гістограма" скопіюйте та вставте наведений нижче код, щоб побудувати гістограму зображення у градаціях сірого за допомогою команди imhist ("ім'я файлу") та відобразити її на осі1 . Для побудови гістограми вам завжди потрібно перетворити зображення у відтінки сірого, і тоді ви зможете побачити гістограму цього графічного файлу.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2gray (ahist); сокири (ручки.оси1); імгіст (ахіст);
5. Перетворити на доповнене зображення
У функції 'complementimage' скопіюйте та вставте наведений нижче код, щоб побачити доповнення вставленого графічного файлу за допомогою команди imcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = недоповнення (acomp); сокири (ручки.оси1); imshow (acomp);
6. Виявлення країв методом Canny
У функції 'edge' скопіюйте та вставте наведений нижче код, щоб виявити та знайти краї на зображенні у відтінках сірого за допомогою команди edge ('ім'я файлу', 'метод') . На місці методу ви можете вибрати серед цих трьох, Canny, Prewitt та монтаж . Ми використовуємо метод Canny для виявлення країв. Крім того, ви не можете визначити край безпосередньо з оригінального зображення, спочатку вам потрібно перетворити його у відтінки сірого, а потім ви зможете виявити краї.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2gray (відступ); aedge = edge (aedge , 'Canny') ' осі (handles.axes1); імшоу (клин);
7. Поверніть зображення за годинниковою стрілкою
У функції "за годинниковою стрілкою" скопіюйте та вставте наведений нижче код, щоб повернути зображення в напрямку за годинниковою стрілкою, використовуючи команду imrotate (ім'я файлу, "кут")
a = getappdata (0, 'a'); aclock = a; aclock = імротувати (aclock, 270); сокири (ручки.оси1); imshow (aclock);
8. Поверніть зображення проти годинникової стрілки
У функції `` проти годинникової стрілки '' скопіюйте та вставте наведений нижче код, щоб повернути зображення в напрямку проти годинникової стрілки, використовуючи команду imrotate (ім'я файлу, `` кут '')
a = getappdata (0, 'a'); aclock = a; aclock = імротувати (aclock, 90); сокири (ручки.оси1); imshow (aclock);
Запустіть графічний інтерфейс MATLAB для обробки зображень
Тепер натисніть кнопку "RUN", щоб запустити відредагований код у файлі.m
MATLAB може зайняти кілька секунд, щоб відповісти, не натискайте жодної кнопки графічного інтерфейсу, поки MATLAB не покаже повідомлення про зайнятість у нижньому лівому куті, як показано нижче,
Коли все буде готово, імпортуйте зображення з ПК, натиснувши кнопку «Завантажити зображення». Тепер ви зможете перетворити або повернути зображення, натиснувши будь-яку кнопку відповідно. Нижче таблиця покаже вам завдання, яке ми виконуємо натисканням будь-якої конкретної кнопки:
Результат натискання кожної кнопки дасть показано нижче,
Повна робота кожної кнопки продемонстрована у відео нижче.
Ви навіть можете виконати просунутий рівень обробки зображень за допомогою програми обробки зображень, яку ви можете придбати на офіційному веб-сайті MATHWORKS.
- Геометричні операції
- Блокові операції
- Лінійна фільтрація та конструкція фільтра
- Перетворює
- Аналіз та покращення зображень
- Двійкові операції із зображеннями