drawcrosshair

Создайте настраиваемый ROI перекрестия

Описание

пример

roi = drawcrosshair создает Crosshair возразите и включает интерактивный рисунок видимой области (ROI) перекрестия на текущей системе координат. ROI перекрестия составлен из двух перпендикулярных линий, которые являются полной шириной и высотой осей.

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

Примечание

drawcrosshair функция удобства для создания объекта ROI перекрестия. Если вы создаете объект ROI непосредственно путем вызова Crosshair, необходимо вызвать draw возразите функции, чтобы включить интерактивный рисунок ROI. В отличие от этого drawcrosshair функция создает объект ROI и вызывает draw возразите функции для вас. После создания ROI с помощью любой опции, чтобы настроить ее внешний вид и поведение, необходимо использовать свойства объектов, объектные функции и уведомления о событии. Для получения дополнительной информации об использовании этих возможностей смотрите Советы.

roi = drawcrosshair(ax,___) начинает интерактивное размещение ROI в осях, заданных ax.

пример

roi = drawcrosshair(___,Name,Value) настраивает внешний вид и поведение ROI с помощью одной или нескольких пар "имя-значение". Незаданные пары "имя-значение" установлены в значение по умолчанию.

Примеры

свернуть все

В этом примере показано, как создать ROI перекрестия и в интерактивном режиме и программно.

Создайте ROI перекрестия

Считайте изображение в рабочую область и отобразите ее.

figure;
imshow('pears.png')

Создайте ROI перекрестия на изображении с помощью drawcrosshair функционируйте в интерактивном режиме. Переместите курсор через изображение куда угодно и нажатие кнопки, чтобы чертить ROI. Нажмите на Центр ROI (точка, где горизонтальная линия пересекает вертикальную линию) перемещать ROI в изображение.

h = drawcrosshair();

Создайте ROI перекрестия программно

Считайте изображение в рабочую область и отобразите ее.

figure;
imshow('pears.png')

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

h = drawcrosshair('Position',[100 100]);

Измените внешний вид ROI перекрестия Используя свойства

Считайте изображение в рабочую область и отобразите ее.

figure;
imshow('pears.png')

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

h = drawcrosshair('Position',[100 100]);

Используйте свойства объекта Crosshair изменить линии в ROI, который будет чередоваться. drawcrosshair функция возвращает Crosshair возразите, что поддерживает много свойств. Используйте StripeColor свойство задать цвет дорожки.

h.StripeColor = 'green';

Считайте изображение в рабочую область и отобразите ее.

img = imread('coins.png');
hAx = gca;
imObj = imshow(img,'Parent',hAx);
imObj.Parent.Visible = 'on';

Создайте ROI перекрестия.

h = drawcrosshair('Parent',hAx,'Position',[50 50],'LineWidth',1,'Color','y');

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

addlistener(h,'MovingROI',@(src,data)displayInfo(src,data,hAx,img));

Это - функция обратного вызова, которая отображает значение пикселя, заданного ROI перекрестия.

function displayInfo(src,data,hAx,img)
pos = ceil(data.CurrentPosition);
pixval = img(pos(2),pos(1));
src.Label = mat2str(pixval);
title(mat2str(pos));
end

Входные параметры

свернуть все

Родительские оси ROI в виде Axes возразите или UIAxes объект. Для получения информации об использовании ROI в UIAxes, включая важные ограничения смотрите Используя ROI в Приложениях, Созданных с App Designer.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: roi = drawcrosshair(gca,'Position',[1000 1000]);

Цвет ROI в виде разделенной запятой пары, состоящей из 'Color' и MATLAB® ColorSpec (Color Specification) значение.

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

Контекстное меню в виде разделенной запятой пары, состоящей из 'ContextMenu' и ContextMenu объект. Задайте эту пару "имя-значение", чтобы отобразить пользовательское контекстное меню, когда вы щелкнете правой кнопкой по ROI. Чтобы создать пользовательское контекстное меню, создайте ContextMenu объект, при помощи uicontextmenu функция, и затем конфигурирует свойства контекстного меню.

ROI может быть в интерактивном режиме удален через контекстное меню в виде разделенной запятой пары, состоящей из 'Deletable' и логическое значение true или false. Когда значением является true (значение по умолчанию), можно удалить ROI через контекстное меню. Чтобы отключить этот элемент контекстного меню, установите 'Deletable' к false. Когда значение установлено к false, можно все еще удалить ROI путем вызова delete функция, задавая указатель на ROI как вход.

Область осей, в которых можно чертить ROI в виде разделенной запятой пары, состоящей из 'DrawingArea' и одно из значений в этой таблице.

ЗначениеОписание
'auto'Областью рисунка являются пределы текущей системы координат (значение по умолчанию).
'unlimited'Область рисунка не имеет никакого контура, и ROI могут чертиться или перетаскиваться, чтобы расширить вне пределов осей.
[x,y,w,h]Область рисунка ограничивается прямоугольной областью. x и y задают левый верхний угол. w и h задают ширину и высоту прямоугольника.

Видимость ROI обрабатывает в Children свойство родительского элемента в виде разделенной запятой пары, состоящей из 'HandleVisibility' и одно из значений в этой таблице.

ЗначениеОписание
'on'Указатель на объект всегда отображается (значение по умолчанию).
'off'Указатель на объект скрыт в любом случае.
'callback'Указатель на объект отображается из коллбэков или функций, вызванных коллбэками, но не из функций, вызванных из командной строки.

Интерактивность ROI в виде разделенной запятой пары, состоящей из 'InteractionsAllowed' и одно из значений в этой таблице.

ЗначениеОписание
'all'ROI является полностью межигровым (значение по умолчанию).
'none'ROI не является межигровым, и никакие не перетаскивают точки, отображаются.

Метка ROI в виде разделенной запятой пары, состоящей из 'Label' и вектор символов или строка. По умолчанию это свойство установлено в пустой массив ('') и ROI не имеет никакой метки.

Видимость метки ROI в виде разделенной запятой пары, состоящей из 'LabelVisible' и одно из этих значений.

ЗначениеОписание
'on'Метка отображается, когда ROI отображается, и Label свойство непусто (значение по умолчанию).
'hover'

Метка отображается только, когда мышь наводит на ROI.

'off'Метка не отображается.

Ширина ребра ROI в виде разделенной запятой пары, состоящей из 'LineWidth' и положительный числовой скаляр в точках. Значением по умолчанию является три раза число точек на экранный пиксель.

Родительский элемент ROI в виде разделенной запятой пары, состоящей из 'Parent' и Axes или UIAxes объект. Для получения информации об использовании ROI в UIAxes, включая важные ограничения, смотрите Используя ROI в Приложениях, Созданных с App Designer.

Положение ROI в виде разделенной запятой пары, состоящей из 'Position' и 1 2 числовой массив формы [x y]. Значения x и y задайте x - и y - координаты местоположения, где горизонтальная линия пересекает вертикальную линию в ROI перекрестия. Это значение автоматически изменяется, когда вы чертите или перемещаете ROI.

Состояние выбора ROI в виде разделенной запятой пары, состоящей из 'Selected' и true или false. Можно также установить это значение в интерактивном режиме. Например, нажатие на ROI выбирает его и устанавливает это значение к true. Точно так же, если вы Ctrl-click ROI, отменяет выбор его и устанавливает это значение к false.

Цвет ROI, когда выбрано в виде разделенной запятой пары, состоящей из 'SelectedColor' и ColorSpec (Color Specification) MATLAB. Если 'SelectedColor' установлен в 'none', затем значение Color задает цвет ROI для всех состояний, выбранных или нет.

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

Цвет ROI чередует в виде разделенной запятой пары, состоящей из 'StripeColorColorSpec (Color Specification) MATLAB значение. Если вы задаете 'StripeColor', ребро ROI чередуется. Чередование состоит из комбинации значения, заданного 'Color' или 'SelectedColor' и это значение.

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

Пометьте, чтобы сопоставить с ROI в виде разделенной запятой пары, состоящей из 'Tag' и вектор символов или строковый скаляр. Используйте значение тега, чтобы найти объект ROI в иерархии объектов при помощи findobj функция.

Данные, чтобы сопоставить с ROI в виде разделенной запятой пары, состоящей из 'UserData' и любые данные MATLAB. Например, можно задать скаляр, вектор, матрицу, массив ячеек, строку, символьный массив, таблицу или структуру. MATLAB не использует эти данные.

Видимость ROI в виде разделенной запятой пары, состоящей из 'Visible' и 'on' или 'off', или как числовой или логический 1 (TRUE) или 0 ложь. Значение 'on' эквивалентно истине и 'off' эквивалентно лжи. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

ЗначениеОписание
'on'Отобразите ROI (значение по умолчанию).
'off'Скройте ROI, не удаляя его. Все еще можно получить доступ к свойствам невидимого ROI.

Выходные аргументы

свернуть все

ROI перекрестия, возвращенный как Crosshair объект.

Советы

  • Эта таблица описывает, как выполнить общие задачи с ROI перекрестия.

    ЗадачаОписание
    Отмените операцию рисования.Начните чертить ROI и нажмите Esc прежде, чем выпустить мышь. Функция возвращает допустимый объект ROI с пустым Position свойство.
    Переместите ROI.Расположите указатель над ROI. Указатель превращается в форму fleur. Перетащите, чтобы переместить ROI.
    Удалите ROI.Расположите указатель над ROI и щелкните правой кнопкой, чтобы просмотреть его контекстное меню. Выберите Delete Crosshair из меню. Можно также удалить ROI с помощью delete объектная функция.
  • drawcrosshair функция возвращает Crosshair Объект ROI. После создания используйте эти возможности объекта настроить внешний вид и поведение ROI.

    • Свойства объектов — ROI возражает свойствам поддержки, которые изменяют их внешний вид или поведение. Например, чтобы изменить цвет roi к желтому, устанавливает его Color свойство, roi.Color = 'yellow'.

    • Объектные функции — объекты ROI поддерживают набор объектных функций, которые работают с ROI. Например, если вы хотите приостановить командную строку MATLAB после создания ROI, вызовите wait объектная функция.

    • Уведомления о событии — объекты ROI могут уведомить ваш код, когда определенные события, такой как перемещаемый или кликнувший, происходят с ROI. Чтобы получить эти уведомления, используйте addlistener возразите функции, чтобы настроить listeners для определенных событий. В прослушивателе задайте событие, такое как 'ROIMoved', и функция обратного вызова, которая выполняется, когда событие имеет место. Когда ROI уведомляет ваше приложение через прослушиватель, это возвращает данные, характерные для события. Например, с 'ROIMoved' событие, объект ROI возвращает свое предыдущее положение и свое текущее положение.

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

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2020a

Введенный в R2019b