Интерактивный рабочий процесс инструмента

Используя интерактивные инструменты обычно включает следующие шаги.

Отобразите целевое изображение в Окне фигуры

Отобразите изображение, которое будет обработано (названный target image) в MATLAB® окно рисунка. imshow функция рекомендуется, потому что она оптимизирует фигуру, оси и свойства объекта изображения для отображения изображений, но можно также использовать image или imagesc функции.

Некоторые инструменты добавляют себя в окно рисунка, содержащее изображение. Препятствуйте тому, чтобы инструменты отобразились по изображению включением границы. Если вы используете imshow функция, затем убедитесь что ImshowBorder Image Processing Toolbox™ настройка установлена в 'loose' (это - настройка по умолчанию).

Создайте инструмент

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

Объединенный инструмент с целевым изображением

Когда вы создаете инструмент, можно задать целевое изображение, или можно позволить инструменту выбрать подходящее целевое изображение.

  • Чтобы задать целевое изображение, обеспечьте указатель на целевое изображение как входной параметр к функции создания инструмента. Указатель может быть определенным объектом изображения, или фигурой, осями или объектом uipanel, который содержит изображение.

  • Чтобы позволить инструменту выбрать целевое изображение, вызовите функцию создания инструмента без входных параметров. По умолчанию инструмент использует изображение в текущей фигуре как целевое изображение. Если текущая фигура содержит повторные изображения, то партнеры инструмента первого изображения в дочерних элементах объекта фигуры (последнее созданное изображение). Обратите внимание на то, что не все инструменты предлагают синтаксис без аргументов.

Некоторые инструменты могут работать с повторными изображениями на рисунке. Это impixelinfo, impixelinfoval, и imdisplayrange.

Задайте родительский элемент инструмента

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

Определение родительского элемента является дополнительным. Когда вы не задаете родительский элемент, инструменты используют поведение по умолчанию.

  • Некоторые инструменты меньшего размера, такие как инструмент Display Range и инструмент Pixel Information, используют родительский элемент целевого изображения как их родительский элемент, вводя себя в то же окно рисунка как целевое изображение.

  • Другие инструменты, такие как инструмент Adjust Contrast и инструмент Choose Colormap, открываются на отдельных собственных рисунках.

  • Два инструмента, инструмент Overview и инструмент Pixel Region, имеют различные функции создания для определения родительской фигуры. Их первичные функции создания, imoverview и impixelregion, откройте инструменты в отдельном окне рисунка. Чтобы задать различный родительский элемент, необходимо использовать imoverviewpanel и impixelregionpanel функции. Для примера смотрите, Создают Пиксельный Инструмент области.

    Примечание

    Инструмент Overview и инструмент Pixel Region предусматривают дополнительные возможности, когда создано в их собственных окнах рисунка. Например, оба инструмента включают кнопки изменения масштаба, которые не являются частью их uipanel версий.

Инструменты положения

Каждый инструмент имеет поведение расположения значения по умолчанию. Например, impixelinfo функция создает инструмент как объект uipanel, который является полной шириной окна рисунка, расположенного в левый нижний угол окна рисунка целевого изображения.

Поскольку инструменты создаются из графических объектов, таких как объекты 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])

Для примера смотрите, Создают Пиксельный Инструмент области.

Добавьте Средства навигации

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

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

Если вы создаете Панель Прокрутки, можно опционально добавить другие инструменты навигации: инструмент Overview и инструмент Magnification. Инструмент Overview отображает представление целого изображения, которому масштабируют для соответствия, с прямоугольником, наложенным на него, который указывает на часть изображения, которое в настоящее время отображается в панели прокрутки. Выводы информации на экран Увеличения текущее увеличение изображения и могут использоваться, чтобы изменить увеличение.

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

Примечание

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

Настройте интерактивность инструмента

Когда вы создаете инструмент и сопоставляете его с целевым изображением, инструмент автоматически устанавливает необходимые связи между целевым изображением и инструментом.

Некоторые инструменты имеют одностороннюю связь с целевым изображением. Эти инструменты обновляются, когда вы взаимодействуете с целевым изображением, но вы не можете использовать инструмент, чтобы изменить целевое изображение. Например, инструмент Pixel Information получает информацию о местоположении и значении пикселя в настоящее время под указателем.

Другие инструменты имеют двухстороннюю связь с целевым изображением. Эти инструменты обновляются, когда вы взаимодействуете с целевым изображением, и можно обновить целевое изображение путем взаимодействия с инструментами. Например, комплекты инструментальных средств Обзора двухсторонняя связь с целевым изображением. Для этого инструмента, если вы изменяете видимый фрагмент целевого изображения путем прокрутки, панорамируя, или путем изменения увеличения, затем инструмент Overview изменяет размер и местоположение прямоугольника детали, чтобы совпадать с фрагментом изображения, которое теперь отображается. С другой стороны, если вы перемещаете окно детали в инструмент Overview, затем инструмент обновляет видимый фрагмент целевого изображения в панели прокрутки.

Инструменты выполняют эту интерактивность при помощи свойств коллбэка графических объектов. Например, поддержка объектов фигуры WindowButtonMotionFcn коллбэк, который выполняется каждый раз, когда кнопка мыши подавлена. Можно настроить возможность соединения инструмента при помощи интерфейса прикладного программиста (API), сопоставленного с инструментом, чтобы настроить коллбэки, чтобы получить уведомление о событиях. Для получения дополнительной информации смотрите Коллбэки — Запрограммированный Ответ на Пользовательское Действие и Обзор событий и Прослушиватели. Для примера смотрите Инструмент Сравнения Сборки Изображений.

Например, поле Magnification поддерживает одну API-функцию: setMagnification. Можно использовать эту API-функцию, чтобы установить значение увеличения, отображенное в поле Magnification. Поле Magnification автоматически уведомляет панель прокрутки, чтобы изменить увеличение изображения на основе значения. Панель прокрутки также поддерживает обширный набор API-функций. Чтобы получить информацию об этих API, смотрите страницу с описанием для каждого инструмента.

Связанные примеры

Больше о