Используя интерактивные модульные инструменты обычно включает следующие шаги.
Шаг | Описание | Примечания |
---|---|---|
1 | Отобразите изображение, которое будет обработано (названный изображением target) в окне рисунка. | Используйте функцию imshow , чтобы отобразить целевое изображение, видеть Отображение Целевое изображение в Окне рисунка. |
2 | Создайте модульный инструмент, сопоставив его с целевым изображением. | Вы используете модульные функции создания инструмента, чтобы создать инструменты — см., что Приложения обработки Пользовательского изображения Сборки Используют Модульные Интерактивные Инструменты для списка доступных инструментов. Большинство инструментов сопоставляет себя с изображением в текущей системе координат, по умолчанию, но можно задать определенный объект изображения, или фигуру, оси или объект uipanel, который содержит изображение. Смотрите Интерактивный Модульный Рабочий процесс Инструмента. В зависимости от того, как вы разработали свой графический интерфейс пользователя, вы можете также хотеть задать родительский объект самого модульного инструмента. Это является дополнительным; по умолчанию инструменты или используют тот же родительский элемент в качестве целевого изображения или открытый в отдельном окне рисунка. Смотрите Задают Родительский элемент Модульного Инструмента для получения дополнительной информации. Вы можете должны быть задать положение графических объектов в графический интерфейсе пользователя, включая модульные инструменты. Смотрите Положение Модульные Инструменты в графический интерфейсе пользователя для получения дополнительной информации. |
3 | Настройте интерактивность между инструментом и целевым изображением. (Необязательно) | Модульные инструменты все настраивают их интерактивные связи с целевым изображением автоматически. Однако можно также задать пользовательскую возможность соединения с помощью модульного инструмента API. Смотрите Настраивают Модульную Интерактивность Инструмента для получения дополнительной информации. |
Как основа для любого графический интерфейса пользователя обработки изображений, который вы создаете, используйте imshow
, чтобы отобразить целевое изображение (или изображения) в окне рисунка MATLAB®. (Можно также использовать image
MATLAB или функции imagesc
.), Если изображение отображено в фигуре, можно сопоставить любой из модульных инструментов с изображением, отображенным в фигуре.
Этот пример использует imshow
, чтобы отобразить изображение в окне рисунка.
himage = imshow('pout.tif');
Поскольку некоторые модульные инструменты добавляют себя в окно рисунка, содержащее изображение, убедитесь, что настройка ImshowBorder
Image Processing Toolbox™ установлена в 'loose'
, если вы используете функцию imshow
. (Это - настройка по умолчанию.) Включением границы, вы гарантируете, что модульные инструменты не отображены по изображению в фигуре.
Чтобы сопоставить модульный инструмент с целевым изображением, отображенным в окне фигуры MATLAB, необходимо создать инструмент с помощью соответствующей функции создания инструмента. Вы задаете целевое изображение в качестве аргумента к функции создания инструмента. Функция создает инструмент и автоматически настраивает связь интерактивности между инструментом и целевым изображением.
По умолчанию большинство модульных функций создания инструмента поддерживает синтаксис без аргументов, который использует изображение в текущей фигуре как целевое изображение. Если текущая фигура содержит повторные изображения, инструменты сопоставляют себя с первым изображением в дочерних элементах объекта фигуры (последнее созданное изображение). impixelinfo
, impixelinfoval
и imdisplayrange
могут работать с повторными изображениями в фигуре.
Например, чтобы использовать инструмент Pixel Information с целевым изображением, отобразите изображение в окне рисунка, с помощью imshow
, и затем вызовите функцию impixelinfo
, чтобы создать инструмент. В этом примере изображение в текущей фигуре является целевым изображением.
imshow('pout.tif'); impixelinfo
Следующие данные показывают целевое изображение в фигуре с инструментом Pixel Information в левом нижнем углу окна. Инструмент Pixel Information автоматически настраивает связь с целевым изображением: когда вы перемещаете указатель через изображение, инструмент отображает x-и y-координаты и значение пикселя под указателем.
Вы задаете целевое изображение модульного инструмента, когда вы создаете его путем передачи изображения в качестве аргумента к модульной функции создания инструмента. Можно также задать фигуру, оси или объект uipanel, который содержит целевое изображение.
Продолжая пример в предыдущем разделе, вы можете хотеть добавить инструмент Display Range в окно рисунка, которое уже содержит инструмент Pixel Information. Для этого вызовите функцию imdisplayrange
, задав целевое изображение. Вы, возможно, также задали фигуру, оси или объект uipanel, содержащий целевое изображение.
imageobj = imshow('pout.tif'); pixelinfopanelobj = impixelinfo(imageobj); drangepanelobj = imdisplayrange(imageobj);
Обратите внимание на то, что функции создания инструмента возвращают объекты uipanel, созданные функциями imdisplayrange
и impixelinfo
. Можно использовать эти объекты, если вы хотите изменить расположение инструментов. Смотрите Положение Модульные Инструменты в графический интерфейсе пользователя для получения дополнительной информации.
Следующие данные показывают целевое изображение в фигуре с инструментом Pixel Information в левом нижнем углу и инструментом Display Range в правом нижнем углу окна. Инструмент Display Range автоматически настраивает связь с целевым изображением: когда вы перемещаете указатель через изображение (или изображения) в фигуре, инструмент Display Range показывает область значений отображения изображения.
Этот пример показывает несколько способов получить указатель на изображение, отображенное в окне рисунка, называемом целевым изображением. Это может быть полезно при создавании приложений с модульными интерактивными инструментами.
Получите указатель, когда вы первоначально отображаете изображение в окне рисунка с помощью синтаксиса imshow
, который возвращает указатель.
hfig = figure;
himage = imshow('moon.tif')
himage = Image with properties: CData: [537x358 uint8] CDataMapping: 'scaled' Show all properties
Получите указатель после того, как вы отобразите изображение в окне рисунка с помощью функции imhandles
. Необходимо задать указатель на окно рисунка в качестве параметра.
himage2 = imhandles(hfig)
himage2 = Image with properties: CData: [537x358 uint8] CDataMapping: 'scaled' Show all properties
Когда вы создаете модульный инструмент, в дополнение к определению целевого изображения, можно опционально задать объект, что вы хотите быть родительским элементом инструмента. Путем определения родительского элемента вы определяете, где инструмент появляется на вашем экране. Используя этот синтаксис модульных функций создания инструмента, можно добавить инструмент в окно рисунка, содержащее целевое изображение, открыть инструмент в отдельном окне рисунка или создать некоторую другую комбинацию.
Определение родительского элемента является дополнительным; модульные инструменты у всех есть поведение по умолчанию. Некоторые инструменты меньшего размера, такие как инструмент Pixel Information, используют родительский элемент целевого изображения как их родительский элемент, вводя себя в то же окно рисунка как целевое изображение. Другие модульные инструменты, такие как инструмент Pixel Region или инструмент Overview, открываются в отдельных собственных фигурах.
Два из инструментов, инструмента Pixel Region и инструмента Overview, имеют отдельную функцию создания, чтобы предусмотреть эту возможность. Их первичные функции создания, imoverview
и impixelregion
, открывают инструменты в отдельном окне рисунка. Чтобы задать различный родительский элемент, необходимо использовать функции impixelregionpanel
и imoverviewpanel
.
Инструмент Overview и инструмент Pixel Region предусматривают дополнительные возможности, когда создано в их собственных окнах рисунка. Например, оба инструмента включают кнопки изменения масштаба, которые не являются частью их uipanel версий.
Этот пример показывает поведение по умолчанию, когда вы создаете инструмент Pixel Region с помощью функции impixelregion
. Инструмент открывается в отдельном окне рисунка, как показано в следующей фигуре.
himage = imshow('pout.tif') hpixelinfopanel = impixelinfo(himage); hdrangepanel = imdisplayrange(himage); hpixreg = impixelregion(himage);
Чтобы встроить инструмент Pixel Region в то же окно как целевое изображение, необходимо задать родительскую фигуру целевого изображения как родительский элемент инструмента Pixel Region, когда вы создаете его.
Следующий пример создает фигуру и объект осей и затем располагает объекты в фигуру гарантировать их видимость. Смотрите Положение Модульные Инструменты в графический интерфейсе пользователя для получения дополнительной информации. Пример затем создает модульные инструменты, задавая фигуру, содержащую целевое изображение как родительский элемент инструмента Pixel Region. Обратите внимание на то, что пример использует функцию impixelregionpanel
, чтобы создать инструмент.
fig = figure; ax = axes('units','normalized','position',[0 .5 1 .5]); img = imshow('pout.tif') pixelinfopanelobj = impixelinfo(img); drangepanelobj = imdisplayrange(img); pixregionobj = impixelregionpanel(fig,img); set(pixregionobj, 'Units','normalized','Position',[0 .08 1 .4]);
Следующие данные показывают Пиксельную область, встроенную в ту же фигуру как целевое изображение.
Когда вы создаете модульные инструменты, у них есть поведение расположения значения по умолчанию. Например, функция impixelinfo
создает инструмент как объект uipanel, который является полной шириной окна рисунка, расположенного в левый нижний угол окна рисунка целевого изображения.
Поскольку модульные инструменты создаются из графических объектов, таких как объекты uipanel, можно использовать свойства объектов изменить их расположение по умолчанию или другие характеристики.
Например, в Задают Родительский элемент Модульного Инструмента, когда инструмент Pixel Region был встроен в то же окно рисунка как целевое изображение, пример должен был изменить местоположение и объекта изображения и инструмента Pixel Region uipanel объект сделать их обоих видимыми в окне рисунка.
Чтобы задать положение модульного инструмента или другого графического объекта, установите значение свойства Position
объекта. Как значение этого свойства, вы задаете четырехэлементный радиус-вектор [left bottom width height]
, где left
и bottom
задают расстояние от левого нижнего угла объекта родительского контейнера, такого как фигура. width
и height
задают размерности объекта.
Когда вы используете радиус-вектор, можно задать модули значений в векторе путем устанавливания значения свойства Units
объекта. Чтобы позволить лучше изменяющее размер поведение, используйте нормированные единицы, потому что они задают относительное положение, не точное местоположение в пикселях. Смотрите страницы с описанием для них графический объект для получения дополнительной информации.
Например, когда вы сначала создаете встроенный инструмент Pixel Region в фигуре, это, кажется, принимает целую фигуру, потому что по умолчанию радиус-вектор установлен в [0 0 1 1]
в нормированных единицах. Этот радиус-вектор говорит инструменту выравнивать себя с левым нижним углом его родительского элемента и заполнять целый объект. Чтобы разместить изображение и инструмент Pixel Information и инструменты Display Range, смените положение инструмента Pixel Region в более низкой половине окна рисунка, покинув комнату в нижней части для инструментов Pixel Information и Display Range. Вот радиус-вектор для инструмента Pixel Region.
set(hpixreg, 'Units','normalized','Position',[0 .08 1 .4])
Чтобы разместить инструмент Pixel Region, измените местоположение целевого изображения так, чтобы это поместилось в верхнюю половину окна рисунка, с помощью следующего радиус-вектора. Чтобы изменить местоположение изображения, необходимо задать свойство Position
объекта осей, который содержит его; объекты изображения не имеют свойства Position
.
set(hax,'Units','normalized','Position',[0 0.5 1 0.5])
Тулбокс модульные инструменты навигации несовместим со стандартными инструментами навигации окна фигуры MATLAB. При использовании этих инструментов в графический интерфейсе пользователя подавите панель инструментов и панель меню в окнах рисунка, чтобы избежать конфликтов между инструментами.
Тулбокс включает несколько модульных инструментов, которые можно использовать, чтобы добавить средства для навигации приложению графический интерфейса пользователя:
Прокрутите панель
Инструмент Overview
Поле Magnification
Панель Прокрутки является первичным инструментом навигации; это - предпосылка для других инструментов навигации. Когда вы отображаете изображение в Панели Прокрутки, инструмент отображает только фрагмент изображения, если это является слишком большим, чтобы поместиться в окно рисунка. Когда только фрагмент изображения видим, Панель Прокрутки добавляет горизонтальные и вертикальные полосы прокрутки, чтобы позволить просмотреть частей изображения, которые не в настоящее время видимы.
Если вы создаете Панель Прокрутки, можно опционально добавить другие модульные инструменты навигации: инструмент Overview и инструмент Magnification. Инструмент Overview отображает представление целого изображения, которому масштабируют для соответствия, с прямоугольником, наложенным на него, который указывает на часть изображения, которое в настоящее время видимо в панели прокрутки. Выводы информации на экран Увеличения текущее увеличение изображения и могут использоваться, чтобы изменить увеличение.
Следующие разделы предоставляют больше подробную информацию.
При понимании Панелей Прокрутки — Добавление панели прокрутки к отображению изображений изменяет отношение графических объектов, используемых в отображении. Этот раздел обеспечивает некоторый существенный фон.
Создайте Приложение для Навигации по Большим Изображениям — Этот раздел показывает, как добавить панель прокрутки в отображение изображений.
Когда вы отображаете изображение в панели прокрутки, это изменяет иерархию объектов вашего отображенного изображения. Эта схема иллюстрирует типичную иерархию объектов для изображения, отображенного в объекте осей в объекте фигуры.
hfig = figure; himage = imshow('concordaerial.png');
Следующие данные показывают эту иерархию объектов.
Иерархия объектов изображения, отображенного в фигуре
Когда вы вызываете функцию imscrollpanel
, чтобы поместить целевое изображение в окно с возможностью прокрутки, эта иерархия объектов изменения. Например, этот код добавляет панель прокрутки в изображение, отображенное в окне рисунка, задавая родительский элемент панели прокрутки и целевого изображения в качестве аргументов. Пример подавляет панель инструментов окна рисунка и панель меню, потому что они не совместимы с инструментами навигации панели прокрутки.
hfig = figure('Toolbar','none',... 'Menubar', 'none'); himage = imshow('concordaerial.png'); hpanel = imscrollpanel(hfig,himage);
Следующие данные показывают иерархию объектов после вызова imscrollpanel
. Отметьте, как imscrollpanel
вставляет новый объект (заштрихованный в сером) в иерархию между объектом фигуры и объектом осей, содержащим изображение. (Чтобы изменить данные изображения, отображенные в полосе прокрутки, используйте функцию replaceImage
в API imscrollpanel
.)
Иерархия объектов изображения, отображенного в панели прокрутки
Следующие данные показывают, как эти графические объекты появляются в изображении с возможностью прокрутки, когда оно отображено на экране.
Компоненты панели прокрутки