Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 3-2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
437.76 Кб
Скачать

Пример создания gui

В примере с помощью GUI открывается изображение и выводится на форму. Далее производится преобразование изображения в оттенки серого и вывод его на экран.

На форму необходимо разместить:

- Объекты Axes, в которых строятся изображения.

- Панель с кнопками для выбора изображения и преобразования его в оттенки серого.

После того, как все элементы будут размещены на форме необходимо каждому элементу axes в Inspector:axes заменить значение Visible на off (рисунок 4). Сконструированное окно GUI имеет вид:

Рисунок 3 – Бланк с элементами

Для изменения свойств компонент можно использовать разные способы:

- Прямо в окне GUI, перемещая компонент или меняя его размеры манипулятором мышь можно изменить размеры и позицию.

- Использовать браузер объектов Object Browser, в котором выбирается нужный объект. При этом вызывается инспектор объектов.

- Property Inspector. Инспектор объектов, в котором отображаются свойства компонентов. Если выбирается конкретный компонент, то в инспекторе он выделяется цветом.

- Прямое редактирование кода в файле GUI.

Рисунок 4 – Инспектор объектов

Компоненты GUI имеют множество свойств, задаваемых по умолчанию. Большинство менять не следует. В нашем примере для кнопок выбора изменяется пункт String (строка, содержащаяся в рамке кнопки).

После создания GUI он должен быть сохранен. Теперь его можно исполнить командой Tools=>Run (или кнопкой со стрелкой из панели инструментов).

Пример работы указан ниже.

Рисунок 5 – Пример работы программы

После создания m-файла откроется окно M-File editor, где в комментариях описано назначение каждого элемента.

Для реализации открытия файла необходимо в окне редактора (M-editor) в function pushbutton1_Callback(hObject, eventdata, handles) добавить следующий код:

[fname,pname] = uigetfile('*.*','Enter data file'); % выбор изображения

global A; % создание глобальной переменной А

A=imread(fname); % считывание выбранного изображения

axes(handles.axes1); % указывается куда будет выведено изображение

set(handles.axes1);

imshow(A,[]);title('Исходное изображение'); % вывод выбранного изображения на форму

Рисунок 6 –Открытие файла

Рисунок 7 – Результат открытия файла

Далее необходимо добавить программный код для преобразования изображения в оттенки серого. Для этого в окне редактора (M-editor) в function pushbutton2_Callback(hObject, eventdata, handles) добавить следующий код:

global A; % создание глобальной переменной А

global B; % создание глобальной переменной B

B=A(:,:,1); % выбрать первую цветовую компоненту изображения в формате RGB

% Определить размеры изображения

[N1,N2]=size(B);

% Вывод исходного изображения на экран

axes(handles.axes2)

imshow(B, []);title('Результат преобразования');

Результат преобразования представлен на рисунке 8:

Рисунок 8 – Результат преобразования

Список индивидуальных данных

Индивидуальными данными являются изображения, идентифицирующие личность студента.

Задание 1.

1. Реализовать пример, рассмотренный в теоретической части лабораторной работы.

2. Сохранить полученные результаты.

Задание 2.

1. На форме необходимо разместить следующие объекты:

- текстовое поле (edit) для значения цветовой компоненты (1, 2 или 3),

- поля для вывода изображений (исходного и результирующего),

- кнопки для открытия файла и преобразования изображения.

Реализовать пример, рассмотренный в теоретической части лабораторной работы.

2. Для того, чтобы получить значение из поля edit необходимо использовать следующий код:

G=str2double(get(handles.edit1, 'String'));

3. В результате преобразований получить 3 разных изображения и оформить отчет.

Примечание. В примере лабораторной работы рассмотрен результат преобразования изображения, где значение цветовой компоненты равно 1.

Пример выполнения работы

Примеры реализации в виде программного кода всех алгоритмов, необходимых для выполнения отдельных шагов лабораторной работы, приведены в теоретической части.

Контрольные вопросы к защите

Контрольные вопросы на защите отчета по лабораторной работе заключаются в необходимости объяснить действие того или иного оператора в разработанной программной реализации метода - вопросы формулируются преподавателем после предварительного ознакомления с текстом созданной программы. При защите отчета по лабораторной работе также необходимо ответить на контрольные вопросы, приведенные после лекционного материала по соответствующей теме.

Способ оценки результатов

Результатом выполнения лабораторной работы является отчет, требования к оформлению которого указаны выше.

Защита отчета состоит в следующем: студент должен объяснить действия любого оператора или группы операторов программы, текст которой содержится в отчете, также ответить на контрольные вопросы.

По результатам успешной защиты студент получает оценку «зачтено», в случае не выполнения указанных выше требований – «не зачтено».