- 1. Обработка изображений с помощью окна редактора MATLAB
- 2. Обработка изображений с графическим интерфейсом MATLAB.
- Создание графического интерфейса пользователя MATLAB для обработки изображений
- Код графического интерфейса MATLAB для обработки изображений
- Запустите код GUI 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 = imread ('F: \ дайджест схемы \ обработка изображений с использованием Matlab \ camerman.jpg'); подсюжет (2,3,1); imshow (а); б = rgb2gray (а); подсюжет (2,3,2); imshow (б); с = im2bw (а); подсюжет (2,3,3); imshow (c); d = imadjust (b); подсюжет (2,3,4); imshow (d); е = а; е = rgb2gray (е); подсюжет (2,3,5); имхист (е); imfinfo ('F: \ дайджест схемы \ обработка изображений с использованием matlab \ beard-man.jpg') = size (a) % colormap ('spring')
В переменной 'a' мы импортируем изображение с помощью команды imread ('filename'), а затем создаем график из строки '2' и столбца '3', используя подзаголовок (строка, столбец, позиция) и отображая импортированное изображение в позиции ' 1 '. Чтобы показать изображение, мы используем команду imshow ('filename') .
Ниже приведены несколько команд для выполнения базовой обработки загруженного изображения:
- В переменной 'b' мы преобразуем изображение RGB в изображение яркости в градациях серого с помощью команды rgb2gray ('filename') и отображаем его на графике в позиции '2'.
- В переменной 'c' мы конвертируем изображение в двоичное изображение, или вы можете сказать в формате '0' (черный) и '1' (белый), используя команду im2bw ('filename') и отображая его в графике на позиция "3".
- В переменной 'd' мы настраиваем или отображаем значения интенсивности изображения в градациях серого с помощью команды imadjust ('filename') и отображаем ее на графике в позиции '4'.
- В переменной 'e' мы строим гистограмму изображения в градациях серого с помощью команды imhist ('filename') и отображаем ее на графике в позиции '5'. Для построения гистограммы вам всегда нужно преобразовывать изображение в оттенки серого, и тогда вы сможете увидеть гистограмму этого графического файла.
- Команда Imfinfo ('имя файла с местоположением') используется для отображения информации о графическом файле.
- Команда = size ('filename') используется для отображения размеров и цветовых плоскостей конкретного графического файла.
- colormap ('spring') используется для изменения типа цветовой карты графического файла. Здесь, в моем коде, я установил эту команду как комментарий, но вы можете использовать ее, удалив знак процента. В MATLAB есть много типов цветов, таких как Jet, HSV, Hot, Cool, Summer, Autumn, Winter, Gray, Bone, Copper, Pink, Lines и spring.
Подобно этим, в MATLAB есть ряд команд, которые можно использовать для выполнения различных задач, вы можете проверить функции обработки изображений в MATLAB, перейдя по ссылке.
2. Обработка изображений с графическим интерфейсом MATLAB.
Создание графического интерфейса пользователя MATLAB для обработки изображений
Для создания графического интерфейса пользователя (GUI) для обработки изображений запустите графический интерфейс, введя следующую команду в командном окне .
руководство
Откроется всплывающее окно, затем выберите новый пустой графический интерфейс, как показано на изображении ниже,
Теперь нам нужно выбрать количество кнопок (каждая кнопка будет выполнять разные задачи) и одну ось для отображения изображения.
Чтобы изменить размер или форму кнопки или осей, просто щелкните по ней, и вы сможете перетаскивать углы кнопки. Двойным щелчком по любой из них вы сможете изменить цвет, строку, тег и другие параметры этой конкретной кнопки. После настройки это будет выглядеть так
Вы можете настроить кнопки по своему усмотрению. Теперь, когда вы сохраняете это, код создается в окне редактора MATLAB. Отредактируйте сгенерированный код, чтобы установить задачу для разных кнопок. Ниже мы отредактировали код MATLAB.
Код графического интерфейса MATLAB для обработки изображений
Полный код MATLAB для обработки изображений с использованием графического интерфейса MATLAB приведен в конце этого проекта. Кроме того, мы включаем сюда файл графического интерфейса (.fig) и файл кода (.m) для загрузки, с помощью которого вы можете настроить размер кнопок или осей в соответствии с вашими требованиями. Мы отредактировали сгенерированный код, как описано ниже.
В функции «uploadimage» скопируйте и вставьте приведенный ниже код, чтобы вставить файл с ПК. Здесь команда uigetfile ('тип расширения изображения') используется для импорта изображения в GUI MATLAB. Прочтите этот файл с помощью команды imread (), а затем отобразите его с помощью команды imshow () на axes1, используя оси (handles.axes1) . Теперь с помощью команды setappdata () сохраните переменную в графическом интерфейсе, чтобы переменная была доступна для одной части графического интерфейса для другой части графического интерфейса.
a = uigetfile ('. jpg') a = imread (а); оси (handles.axes1); imshow (а); setappdata (0, 'а', а)
Теперь в каждой функции вы увидите команду getappdata (), которая используется для извлечения данных, которые хранятся с помощью setappdata () в графическом интерфейсе.
Здесь мы объясним восемь часто используемых функций при обработке изображений.
С. Нет. |
Команда |
Название кнопки |
Задача к выполнению |
1. |
uigetfile () |
Загрузить изображение |
Нажмите, чтобы импортировать изображение с диска |
2. |
rgb2gray () |
RGB в серый |
Щелкните, чтобы преобразовать изображение RGB в оттенки серого |
3. |
im2bw () |
Преобразовать в двоичное изображение |
Нажмите, чтобы преобразовать изображение в двоичный |
4. |
- |
СБРОС |
Нажмите, чтобы восстановить исходное изображение |
5. |
imhist () |
Гистограмма |
Нажмите, чтобы увидеть гистограмму изображения |
6. |
несовершение () |
Дополнить изображение |
Нажмите, чтобы проверить дополнительное изображение |
7. |
край (имя файла, метод) |
Обнаружение края |
Щелкните, чтобы определить края изображения |
8. |
imrotate (имя файла, угол) |
Повернуть по часовой стрелке |
Щелкните, чтобы повернуть изображение по часовой стрелке |
9. |
imrotate (имя файла, угол) |
Повернуть против часовой стрелки |
Щелкните, чтобы повернуть изображение против часовой стрелки. |
1. Преобразование изображения RGB в оттенки серого
В функции 'rgb2gray' скопируйте и вставьте приведенный ниже код, чтобы преобразовать изображение RGB в оттенки серого с помощью команды rgb2gray () .
а = getappdata (0, 'а'); agray = rgb2gray (а); оси (handles.axes1); имшоу (рад);
2. Преобразовать в двоичное изображение
В функции im2bw скопируйте и вставьте приведенный ниже код, чтобы преобразовать изображение в двоичное изображение, или вы можете сказать в формате «0» (черный) и «1» (белый), используя команду im2bw () .
а = getappdata (0, 'а'); abw = im2bw (а); оси (handles.axes1); imshow (abw);
3. Восстановить исходное изображение.
В функции «сброса» скопируйте и вставьте приведенный ниже код, чтобы сбросить отредактированное изображение в исходное изображение.
а = getappdata (0, 'а'); оси (handles.axes1); imshow (а);
4. Постройте гистограмму изображения
В функции «гистограмма» скопируйте и вставьте приведенный ниже код, чтобы построить гистограмму изображения в градациях серого с помощью команды imhist («имя файла») и отобразить ее на осях 1 . Для построения гистограммы вам всегда нужно преобразовывать изображение в оттенки серого, и тогда вы сможете увидеть гистограмму этого графического файла.
а = getappdata (0, 'а'); ахист = а; ахист = rgb2gray (ахист); оси (handles.axes1); имхист (ахист);
5. Преобразовать в дополнительное изображение
В функции «complementimage» скопируйте и вставьте приведенный ниже код, чтобы увидеть дополнение вставленного графического файла с помощью команды imcomplement () .
а = getappdata (0, 'а'); acomp = a; acomp = несовершенное (acomp); оси (handles.axes1); imshow (acomp);
6. Обнаружение краев с использованием метода Канни.
В функции 'edge' скопируйте и вставьте приведенный ниже код, чтобы обнаруживать и находить края в изображении в оттенках серого с помощью команды edge ('filename', 'method') . Вместо метода вы можете выбрать один из этих трех: Canny, Prewitt и монтаж . Мы используем метод Кэнни для обнаружения краев. Кроме того, вы не можете обнаружить края непосредственно из исходного изображения, сначала вам нужно преобразовать его в оттенки серого, а затем вы сможете обнаружить края.
а = getappdata (0, 'а'); aedge = a; aedge = rgb2gray (aedge); aedge = edge (aedge , 'Canny') ' axes (handles.axes1); imshow (aedge);
7. Повернуть изображение по часовой стрелке.
В функции «по часовой стрелке» скопируйте и вставьте приведенный ниже код, чтобы повернуть изображение по часовой стрелке, используя команду imrotate (filename, 'angle')
а = getappdata (0, 'а'); aclock = a; aclock = imrotate (aclock, 270); оси (handles.axes1); imshow (aclock);
8. Повернуть изображение против часовой стрелки.
В функции «против часовой стрелки» скопируйте и вставьте приведенный ниже код, чтобы повернуть изображение в направлении против часовой стрелки, используя команду imrotate (filename, 'angle')
а = getappdata (0, 'а'); aclock = a; aclock = imrotate (aclock, 90); оси (handles.axes1); imshow (aclock);
Запустите код GUI MATLAB для обработки изображений
Теперь нажмите кнопку «RUN», чтобы запустить отредактированный код в файле.m.
MATLAB может занять несколько секунд, чтобы ответить, не нажимайте никакие кнопки графического интерфейса, пока MATLAB не покажет сообщение о занятости в нижнем левом углу, как показано ниже,
Когда все будет готово, импортируйте изображение с ПК, нажав кнопку «Загрузить изображение». Теперь вы сможете преобразовать или повернуть изображение, нажав соответствующую кнопку. Таблица ниже покажет вам задачу, которую мы выполняем при нажатии любой конкретной кнопки:
Результат при нажатии каждой кнопки будет показан ниже,
Полная работа каждой кнопки демонстрируется на видео ниже.
Вы даже можете выполнять продвинутый уровень обработки изображений с помощью Image Processing Toolbox, который вы можете приобрести на официальном сайте MATHWORKS, некоторые операции продвинутого уровня перечислены ниже:
- Геометрические операции
- Блокировать операции
- Линейная фильтрация и дизайн фильтра
- Трансформирует
- Анализ и улучшение изображения
- Операции с бинарными изображениями