- 1. Обработка на изображения с помощта на прозореца на MATLAB Editor
- 2. Обработка на изображения с MATLAB GUI
- Създаване на графичен потребителски интерфейс MATLAB за обработка на изображения
- MATLAB GUI код за обработка на изображения
- Стартирайте MATLAB GUI код за обработка на изображения
Представете си, че насочвате камерата си към някакъв обект и камерата ви казва името на този обект, да, Google Lens в смартфоните с Android прави същото, използвайки Обработка на изображения. Това дава на компютърната визия да открива и разпознава нещата и да предприема съответните действия. Обработката на изображения има много приложения като разпознаване и разпознаване на лица, впечатление с палец, добавена реалност, OCR, сканиране на баркод и много други. Налични са много софтуери за обработка на изображения, сред които MATLAB е най-подходящият за започване.
MATLAB може да изпълнява много предварителни операции по обработка на изображения, но за Първи стъпки с Обработка на изображения в MATLAB, тук ще обясним някои основни операции като RGB до Сиво, завъртане на изображението, двоично преобразуване и т.н. Можете допълнително да направите автоматизирани програми за премахване на шума, изображение яснота, филтриране чрез използване на функциите, обяснени в този урок.
Преди да продължите по-нататък, ако сте нов в MATLAB, можете да проверите предишните ни уроци по MATLAB за по-добро занижаване:
- Първи стъпки с MATLAB: Кратко въведение
- Свързване на Arduino с MATLAB - мигащ светодиод
- DC управление на двигателя с помощта на MATLAB и Arduino
- Управление на стъпков двигател с помощта на MATLAB и Arduino
- Как да начертая графика на температурата в реално време с помощта на MATLAB
В MATLAB, както винаги, има два начина за изпълнение на всеки алгоритъм за обработка на изображения, единият е чрез директно въвеждане на командата в прозореца на редактора / командата, а другият е чрез създаване на GUI за същия. Тук ще ви покажем и двата метода за извършване на основни операции по обработка на изображения в MATLAB.
1. Обработка на изображения с помощта на прозореца на MATLAB Editor
Сега ще напишем кода за извършване на някои основни операции по обработка на изображения в прозореца на редактора. За да се запознаете с цялата основна терминология, използвана в MATLAB, следвайте връзката. Копирайте и поставете долния код в прозореца на редактора, a = непрочетено ('F: \ схема дайджест \ обработка на изображения с помощта на matlab \ camerman.jpg'); допълнителен парцел (2,3,1); имшоу (а); b = rgb2gray (a); допълнителен парцел (2,3,2); имшоу (б); 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) % colormap ('spring')
В променлива „а“ импортираме изображение с помощта на команда 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 GUI
Създаване на графичен потребителски интерфейс MATLAB за обработка на изображения
За изграждане на GUI (графичен потребителски интерфейс) за обработка на изображения стартирайте GUI, като напишете командата по-долу в командния прозорец .
ръководство
Ще се отвори изскачащ прозорец, след което изберете нов празен GUI, както е показано на изображението по-долу,
Сега трябва да изберем броя на бутоните (всеки бутон ще изпълнява различна задача) и една ос за показване на изображението.
За да промените размера или да промените формата на бутон или оси, просто кликнете върху него и ще можете да плъзнете ъглите на бутона. Чрез двукратно щракване върху някое от тях ще можете да промените цвета, низа, етикета и други опции на този конкретен бутон. След персонализиране ще изглежда така
Можете да персонализирате бутоните според вашия избор. Сега, когато запазите това, в прозореца на редактора на MATLAB се генерира код. Редактирайте генерирания код, за да зададете задачата за различни бутони. По-долу сме редактирали кода MATLAB.
MATLAB GUI код за обработка на изображения
Пълният код на MATLAB за обработка на изображения с помощта на GUI на MATLAB е даден в края на този проект. Освен това тук включваме GUI файла (.fig) и кодовия файл (.m) за изтегляне, с помощта на който можете да персонализирате бутоните или размера на осите според вашите изисквания. Редактирахме генерирания код, както е обяснено по-долу.
Във функцията 'uploadimage' копирайте и поставете долния код, за да вмъкнете файла от компютъра. Тук командата uigetfile („тип разширение на изображението“) се използва за импортиране на изображение в графичния интерфейс на MATLAB. Прочетете този файл с помощта на команда imread () и след това го покажете с команда imshow () на axes1 с помощта на оси (handles.axes1) . Сега, с командата setappdata (), съхранявайте променливата в GUI, така че променливата да бъде достъпна за една част от GUI до другата част от GUI.
a = uigetfile ('. jpg') a = непрочетено (a); оси (дръжки.оси1); имшоу (а); setappdata (0, 'a', a)
Сега във всяка функция ще видите команда getappdata (), която се използва за извличане на данни, които се съхраняват с помощта на setappdata () в GUI.
Тук ще обясним осем често използвани функции при обработката на изображения
S. Не. |
Команда |
Име на бутон |
Задача, която трябва да се изпълни |
1. |
uigetfile () |
Качи изображение |
Щракнете, за да импортирате изображение от диска |
2. |
rgb2gray () |
RGB към Грей |
Щракнете, за да конвертирате RGB изображението в сива скала |
3. |
im2bw () |
Конвертиране в двоично изображение |
Щракнете, за да конвертирате изображението в двоично |
4. |
- |
НУЛИРАНЕ |
Щракнете, за да нулирате изображението като оригинал |
5. |
имхист () |
Хистограма |
Щракнете, за да видите хистограмата на изображението |
6. |
неизпълнение () |
Изображение за допълване |
Щракнете, за да проверите изображението на допълнението |
7. |
край (име на файл, метод) |
Откриване на ръбове |
Щракнете, за да откриете ръбовете в изображението |
8. |
imrotate (име на файл, ъгъл) |
Завъртете по часовниковата стрелка |
Щракнете, за да завъртите изображението по посока на часовниковата стрелка |
9. |
imrotate (име на файл, ъгъл) |
Завъртете обратно на часовниковата стрелка |
Щракнете, за да завъртите изображението в посока, обратна на часовниковата стрелка |
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); имшоу (abw);
3. Нулирайте до първоначалното изображение
Във функцията „нулиране“ копирайте и поставете кода по-долу, за да нулирате редактираното изображение в оригиналното изображение.
a = getappdata (0, 'a'); оси (дръжки.оси1); имшоу (а);
4. Хистограма на графично изображение
Във функцията „хистограма“ копирайте и поставете кода по-долу, за да начертаете хистограмата на изображението в сивата скала, като използвате командата imhist („име на файл“) и я покажете в на axes1 . За да начертаете хистограмата, винаги трябва да конвертирате изображението в скала на сивото и след това ще можете да видите хистограмата на този графичен файл.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2gray (ahist); оси (дръжки.оси1); имхист (ахист);
5. Преобразуване в допълващо изображение
Във функцията 'complementimage' копирайте и поставете кода по-долу, за да видите допълнението на вмъкнатия графичен файл, като използвате команда imcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = неизпълнение (acomp); оси (дръжки.оси1); имшоу (acomp);
6. Откриване на ръбове по метода на Canny
Във функцията 'edge' копирайте и поставете кода по-долу, за да откриете и намерите ръбове в изображението в сиво, като използвате командния край ('име на файл', 'метод') . На мястото на метода можете да изберете измежду тези три, Canny, Prewitt и монтаж . Използваме метода Canny за откриване на ръбове. Също така не можете да откриете ръба директно от оригиналното изображение, първо трябва да го преобразувате в сива скала и след това можете да можете да откриете ръбовете.
a = getappdata (0, 'a'); ръб = a; aedge = rgb2gray (aedge); aedge = edge (aedge , 'Canny') ' оси (handles.axes1); imshow (aedge);
7. Завъртете изображението по посока на часовниковата стрелка
Във функцията „по посока на часовниковата стрелка“ копирайте и поставете долния код, за да завъртите изображението по посока на часовниковата стрелка, като използвате команда imrotate (име на файл, „ъгъл“)
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 270); оси (дръжки.оси1); imshow (aclock);
8. Завъртете изображението обратно на часовниковата стрелка
Във функцията „обратно на часовниковата стрелка“ копирайте и поставете долния код, за да завъртите изображението в посока, обратна на часовниковата стрелка, като използвате команда imrotate (име на файл, „ъгъл“)
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 90); оси (дръжки.оси1); imshow (aclock);
Стартирайте MATLAB GUI код за обработка на изображения
Сега кликнете върху бутона „РАБОТА“, за да стартирате редактирания код във.m файл
MATLAB може да отнеме няколко секунди, за да отговори, не кликвайте върху бутоните на GUI, докато MATLAB не показва съобщение заето в долния ляв ъгъл, както е показано по-долу,
Когато всичко е готово, импортирайте изображението от компютъра, като кликнете върху бутона „Качване на изображение“. Сега ще можете да конвертирате или завъртите изображението, като щракнете съответно върху който и да е бутон. По-долу таблицата ще ви покаже задачата, която изпълняваме с едно щракване на който и да е бутон:
Резултатът при щракване на всеки бутон ще даде показаното по-долу,
Пълната работа на всеки бутон е демонстрирана във видеото по-долу.
Можете дори да направите разширено ниво на обработка на изображения с инструмента за обработка на изображения, който можете да закупите от официалния сайт на MATHWORKS, някои от операциите на предварително ниво са изброени по-долу:
- Геометрични операции
- Блокови операции
- Линейно филтриране и дизайн на филтъра
- Трансформира
- Анализ и подобряване на изображенията
- Операции с двоични изображения