drawcrosshair

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

Описание

drawcrosshair функция создает Crosshair объект, который задает положение видимой области (ROI) перекрестия. Можно создать ROI в интерактивном режиме путем рисования ROI по изображению с помощью мыши, или программно при помощи аргументов name-value. Можно также задать начальный внешний вид и поведение ROI.

A horizontal line and a vertical line intersect to form a crosshair.

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

пример

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

Чтобы чертить ROI, переместите курсор через оси и нажатие кнопки. Для получения дополнительной информации об использовании 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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Color','y' создает желтый Crosshair объект

Цвет ROI в виде триплета RGB, названия цвета или короткого названия цвета.

Можно задать любой цвет с помощью триплета RGB. Триплет RGB является вектором-строкой с 3 элементами, элементы которого задают интенсивность красных, зеленых, и синих компонентов цвета. Интенсивность должна быть в области значений [0,1].

Можно задать некоторые простые цвета по наименованию как строковый скаляр или вектор символов. Эта таблица приводит опции именованного цвета и эквивалентные триплеты RGB.

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

A rectangle colored pure red

'green''g'[0 1 0]

A rectangle colored pure green

'blue''b'[0 0 1]

A rectangle colored pure blue

'cyan' 'c'[0 1 1]

A rectangle colored pure cyan

'magenta''m'[1 0 1]

A rectangle colored pure magenta

'yellow''y'[1 1 0]

A rectangle colored pure yellow

'black''k'[0 0 0]

A rectangle colored black

'white''w'[1 1 1]

A rectangle colored white

Вот триплеты RGB для цветов по умолчанию что MATLAB® использование во многих типах графиков.

Триплет RGBВнешний вид
[0 0.4470 0.7410]

A rectangle colored medium blue

[0.8500 0.3250 0.0980]

A rectangle colored reddish-orange

[0.9290 0.6940 0.1250]

A rectangle colored dark yellow

[0.4940 0.1840 0.5560]

A rectangle colored dark purple

[0.4660 0.6740 0.1880]

A rectangle colored light green

[0.3010 0.7450 0.9330]

A rectangle colored light blue

[0.6350 0.0780 0.1840]

A rectangle colored dark red

Пример: 'Color','r'

Пример: 'Color','green'

Пример: 'Color',[0 0.4470 0.7410]

Контекстное меню, которое отображается, когда вы щелкаете правой кнопкой по ROI в виде ContextMenu объект. Можно создать пользовательское контекстное меню при помощи uicontextmenu функционируйте и затем конфигурирующий свойства контекстного меню.

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

В обоих случаях можно удалить ROI за пределами контекстного меню при помощи delete функция.

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

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

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

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

Интерактивность ROI в виде одного из значений в этой таблице.

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

Метка ROI в виде вектора символов или строкового скаляра. По умолчанию ROI не имеет никакой метки ('').

Прозрачность фона текста в виде номера в области значений [0, 1]. Когда установлено в 1, фон текста абсолютно непрозрачен. Когда установлено в 0, фон текста абсолютно прозрачен.

Цвет текста метки в виде триплета RGB, названия цвета или короткого названия цвета.

Можно задать любой цвет с помощью триплета RGB. Триплет RGB является вектором-строкой с 3 элементами, элементы которого задают интенсивность красных, зеленых, и синих компонентов цвета. Интенсивность должна быть в области значений [0,1].

Можно задать некоторые простые цвета по наименованию как строковый скаляр или вектор символов. Эта таблица приводит опции именованного цвета и эквивалентные триплеты RGB.

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

A rectangle colored pure red

'green''g'[0 1 0]

A rectangle colored pure green

'blue''b'[0 0 1]

A rectangle colored pure blue

'cyan' 'c'[0 1 1]

A rectangle colored pure cyan

'magenta''m'[1 0 1]

A rectangle colored pure magenta

'yellow''y'[1 1 0]

A rectangle colored pure yellow

'black''k'[0 0 0]

A rectangle colored black

'white''w'[1 1 1]

A rectangle colored white

Вот триплеты RGB для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBВнешний вид
[0 0.4470 0.7410]

A rectangle colored medium blue

[0.8500 0.3250 0.0980]

A rectangle colored reddish-orange

[0.9290 0.6940 0.1250]

A rectangle colored dark yellow

[0.4940 0.1840 0.5560]

A rectangle colored dark purple

[0.4660 0.6740 0.1880]

A rectangle colored light green

[0.3010 0.7450 0.9330]

A rectangle colored light blue

[0.6350 0.0780 0.1840]

A rectangle colored dark red

Пример: 'LabelTextColor','r'

Пример: 'LabelTextColor','green'

Пример: 'LabelTextColor',[0 0.4470 0.7410]

Пометьте видимость в виде одного из этих значений.

ЗначениеОписание
'on'Метка отображается, когда ROI отображается.
'hover'Метка отображается только, когда мышь наводит на ROI.
'off'Метка не отображается.

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

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

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

Состояние выбора ROI в виде логического значения true или false.

Цвет ROI, когда выбрано в виде триплета RGB, названия цвета, короткого названия цвета или 'none'. Если вы задаете 'none', затем значение Color задает цвет ROI для всех состояний, выбранных или нет.

Можно задать любой цвет с помощью триплета RGB. Триплет RGB является вектором-строкой с 3 элементами, элементы которого задают интенсивность красных, зеленых, и синих компонентов цвета. Интенсивность должна быть в области значений [0,1].

Можно задать некоторые простые цвета по наименованию как строковый скаляр или вектор символов. Эта таблица приводит опции именованного цвета и эквивалентные триплеты RGB.

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

A rectangle colored pure red

'green''g'[0 1 0]

A rectangle colored pure green

'blue''b'[0 0 1]

A rectangle colored pure blue

'cyan' 'c'[0 1 1]

A rectangle colored pure cyan

'magenta''m'[1 0 1]

A rectangle colored pure magenta

'yellow''y'[1 1 0]

A rectangle colored pure yellow

'black''k'[0 0 0]

A rectangle colored black

'white''w'[1 1 1]

A rectangle colored white

Вот триплеты RGB для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBВнешний вид
[0 0.4470 0.7410]

A rectangle colored medium blue

[0.8500 0.3250 0.0980]

A rectangle colored reddish-orange

[0.9290 0.6940 0.1250]

A rectangle colored dark yellow

[0.4940 0.1840 0.5560]

A rectangle colored dark purple

[0.4660 0.6740 0.1880]

A rectangle colored light green

[0.3010 0.7450 0.9330]

A rectangle colored light blue

[0.6350 0.0780 0.1840]

A rectangle colored dark red

Пример: 'SelectedColor','r'

Пример: 'SelectedColor','green'

Пример: 'SelectedColor',[0 0.4470 0.7410]

Цвет ROI чередует в виде триплета RGB, названия цвета, короткого названия цвета или 'none'. Если вы задаете 'none', затем ребро ROI является сплошным цветом, заданным Color. В противном случае ребро ROI чередуется с цветами, чередующимися между цветами, заданными Color и StripeColor.

Можно задать любой цвет с помощью триплета RGB. Триплет RGB является вектором-строкой с 3 элементами, элементы которого задают интенсивность красных, зеленых, и синих компонентов цвета. Интенсивность должна быть в области значений [0,1].

Можно задать некоторые простые цвета по наименованию как строковый скаляр или вектор символов. Эта таблица приводит опции именованного цвета и эквивалентные триплеты RGB.

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

A rectangle colored pure red

'green''g'[0 1 0]

A rectangle colored pure green

'blue''b'[0 0 1]

A rectangle colored pure blue

'cyan' 'c'[0 1 1]

A rectangle colored pure cyan

'magenta''m'[1 0 1]

A rectangle colored pure magenta

'yellow''y'[1 1 0]

A rectangle colored pure yellow

'black''k'[0 0 0]

A rectangle colored black

'white''w'[1 1 1]

A rectangle colored white

Вот триплеты RGB для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBВнешний вид
[0 0.4470 0.7410]

A rectangle colored medium blue

[0.8500 0.3250 0.0980]

A rectangle colored reddish-orange

[0.9290 0.6940 0.1250]

A rectangle colored dark yellow

[0.4940 0.1840 0.5560]

A rectangle colored dark purple

[0.4660 0.6740 0.1880]

A rectangle colored light green

[0.3010 0.7450 0.9330]

A rectangle colored light blue

[0.6350 0.0780 0.1840]

A rectangle colored dark red

Пример: 'StripeColor','r'

Пример: 'StripeColor','green'

Пример: 'StripeColor',[0 0.4470 0.7410]

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

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

Видимость ROI в виде 'on' или 'off', или как числовой или логический 1 (TRUE) или 0 ложь. Значение 'on' эквивалентно истине и 'off' эквивалентно лжи. Значение хранится как логическое значение включения - выключения типа 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 кликают или когда ROI перемещается. Чтобы получить уведомления о событии, настройте listeners. Когда ROI уведомляет ваше приложение через прослушиватель, это возвращает данные, характерные для события. Например, с ROIMoved событие, объект ROI возвращает свое предыдущее положение и свое текущее положение. Можно задать функцию обратного вызова, которая выполняется, когда событие имеет место.

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

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

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

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

Введенный в R2019b