exponenta event banner

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

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

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

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

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

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

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

Связать инструмент с целевым изображением

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

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

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

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

Указать родителя инструмента

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

Указание родителя необязательно. Если родительский элемент не указан, в инструментах используется поведение по умолчанию.

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

  • Другие инструменты, такие как инструменты «Настройка контрастности» и «Выбор карты цветности», открываются на отдельных рисунках.

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

    Примечание

    Инструмент «Обзор» и инструмент «Пиксельная область» предоставляют дополнительные возможности при создании в собственных окнах рисунков. Например, оба инструмента включают кнопки зумирования, которые не являются частью их версий uipanel.

Инструменты позиционирования

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

Поскольку инструменты создаются из графических объектов, таких как объекты uipanel, можно изменить их расположение по умолчанию или другие характеристики, задав свойства объектов. Чтобы задать положение инструмента или другого графического объекта, задайте Position свойство как четырехэлементный вектор положения [left bottom width height]. Значения left и bottom укажите расстояние от нижнего левого угла родительского объекта-контейнера, например фигуры. Значения width и height укажите размеры объекта.

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

Например, при первом создании внедренного инструмента «Пиксельная область» на рисунке создается впечатление, что он захватывает всю фигуру, поскольку по умолчанию для вектора положения установлено значение [0 0 1 1], в нормированных единицах. Этот вектор положения указывает инструменту выровнять себя по нижнему левому углу родительского объекта и заполнить весь объект. Для размещения изображения и инструментов «Информация о пикселях» и «Диапазон отображения» измените положение инструмента «Область пикселей» в нижней половине окна рисунка, оставив место внизу для инструментов «Информация о пикселях» и «Диапазон отображения». Здесь представлен вектор положения инструмента «Пиксельная область».

set(hpixreg,'Units','normalized','Position',[0 .08 1 .4])

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

set(hax,'Units','normalized','Position',[0 0.5 1 0.5])

Пример см. в разделе Создание инструмента пиксельной области.

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

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

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

После создания панели прокрутки можно дополнительно добавить другие инструменты навигации: инструмент «Обзор» и инструмент «Увеличение». Инструмент «Обзор» отображает вид всего изображения, масштабированного по размеру, с наложенным на него прямоугольником, указывающим на часть изображения, которая в данный момент видна на панели прокрутки. Поле увеличения отображает текущее увеличение изображения и может использоваться для изменения увеличения.

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

Примечание

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

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

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

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

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

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

Например, окно «Увеличение» поддерживает одну функцию API: setMagnification. Эту функцию API можно использовать для установки значения увеличения, отображаемого в поле «Увеличение». Окно «Увеличение» автоматически уведомляет панель прокрутки об изменении увеличения изображения на основе значения. Панель прокрутки также поддерживает широкий набор функций API. Для получения информации об этих API см. справочную страницу для каждого инструмента.

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

Подробнее