exponenta event banner

drawcrosshair

Создание настраиваемой перекрестной окупаемости инвестиций

Описание

пример

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

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

Примечание

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

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

пример

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

Примеры

свернуть все

В этом примере показано, как создать перекрестную окупаемость инвестиций как в интерактивном, так и в программном режиме.

Создание перекрестной окупаемости инвестиций

Чтение изображения в рабочую область и его отображение.

figure;
imshow('pears.png')

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

h = drawcrosshair();

Программное создание перекрестной окупаемости инвестиций

Чтение изображения в рабочую область и его отображение.

figure;
imshow('pears.png')

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

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

Изменение внешнего вида перекрестия с помощью свойств

Чтение изображения в рабочую область и его отображение.

figure;
imshow('pears.png')

Создайте перекрестную окупаемость инвестиций на изображении с помощью 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';

Создайте перекрестную окупаемость инвестиций.

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));

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

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

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

свернуть все

Родительские оси окупаемости инвестиций, указанные как 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 объект. Укажите эту пару имя-значение для отображения пользовательского контекстного меню при щелчке правой кнопкой мыши на окупаемости инвестиций. Чтобы создать пользовательское контекстное меню, создайте 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 указывают ширину и высоту прямоугольника.

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

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

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

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

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

Прозрачность текстового фона, определяемая как разделенная запятыми пара, состоящая из 'LabelAlpha' и скалярное значение в диапазоне [0 1]. Если установлено значение 1, текстовой фон полностью непрозрачен. Если установлено значение 0, текстовой фон полностью прозрачен.

Цвет текста метки, заданный как разделенная запятыми пара, состоящая из 'LabelTextColor' и MATLAB ColorSpec (Color Specification) значение. Значения интенсивности должны находиться в диапазоне [0,1].

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

СтоимостьОписание
'on'Метка отображается, когда отображается ROI, и Label свойство nonempty (по умолчанию).
'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. Аналогично, если щелкнуть ROI при нажатой клавише Ctrl, отменит выбор и установит для этого значения значение false.

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

Пример: 'green'

Пример: 'g'

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

Цвет полосы ROI, определяемый как разделенная запятыми пара, состоящая из 'StripeColor«и MATLAB» ColorSpec (Color Specification) значение. При указании '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' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

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

свернуть все

Перекрестная окупаемость инвестиций, возвращенная как Crosshair объект.

Совет

  • В этой таблице описывается выполнение общих задач с перекрестной окупаемостью инвестиций.

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

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

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

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

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

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

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

Не рекомендуется начинать с R2020a

Представлен в R2019b