Image Properties

Внешний вид и поведение изображений

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

im = image(rand(20));
C = im.CData;
im.CDataMapping = 'scaled';

Цвет и прозрачность

расширить все

Данные о цвете изображения, указанные в одной из следующих форм:

  • Вектор или матрица - Этот формат задает индексированные данные изображения. Каждый элемент определяет цвет для одного пикселя изображения. Элементы сопоставлены с цветами в палитре. The CDataMapping свойство управляет методом отображения.

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

    • Если CData имеет тип double, затем значение триплета RGB [0 0 0] соответствует черному и [1 1 1] соответствует белому.

    • Если CData является целым типом, тогда изображение использует полную область значений данных для определения цвета. Для примера, если CData имеет тип uint8, затем [0 0 0] соответствует черному и [255 255 255] соответствует белому. Если CData имеет тип int8, затем [-128 -128 -128] соответствует черному и [127 127 127] соответствует белому.

    • Если CData имеет тип logical, затем [0 0 0] соответствует черному и [1 1 1] соответствует белому.

Этот рисунок показывает относительные размерности CData для двух цветовых моделей.

Поведение NaN элементы не заданы.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Метод отображения цветовых данных, заданный как 'direct' или 'scaled'. Используйте это свойство для управления отображением значений цветовых данных в CData в палитру. CData должен быть вектором или матрицей, определяющей индексированные цвета. Это свойство не влияет, если CData является трехмерным массивом, определяющим истинные цвета.

Методы имеют следующие эффекты:

  • 'direct' - Интерпретируйте значения как индексы в текущую палитру. Значения с десятичным фрагментом фиксируются к ближайшему нижнему целому числу.

    • Если значения имеют тип double или single, затем значения 1 или меньше сопоставить с первым цветом в палитре. Значения, равные или больше длины карты палитры до последнего цвета в палитре.

    • Если значения имеют тип uint8, uint16, uint32, uint64 , int8, int16, int32, или int64, затем значения 0 или меньше сопоставить с первым цветом в палитре. Значения, равные или больше длины карты палитры до последнего цвета в палитре (или до пределов области значений типа).

    • Если значения имеют тип logical, затем значения 0 сопоставить с первым цветом в палитре и значениями 1 сопоставить со вторым цветом в палитре.

  • 'scaled' - Масштабируйте значения в диапазоне между минимальным и максимальным пределами цвета. The CLim свойство осей содержит пределы цвета.

Данные прозрачности, указанные в одной из следующих форм:

  • Скаляр - Использование последовательной прозрачности по всему изображению.

  • Массив того же размера, что и CData - Используйте другое значение прозрачности для каждого элемента изображения.

The AlphaDataMapping свойство управляет тем, как MATLAB® интерпретирует значения альфа данных прозрачности.

Пример: 0.5

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Интерпретация AlphaData значения, заданные в качестве одного из следующих значений:

  • 'none' - Интерпретируйте значения как значения прозрачности. Значение 1 или больше полностью непрозрачно, значение 0 или менее полностью прозрачно, а значение от 0 до 1 полупрозрачно.

  • 'scaled' - Отобразите значения в альфа-карту рисунка. Минимальные и максимальные альфа- пределы осей определяют значения альфа- данных, которые сопоставлены с первым и последним элементами альфа-карты, соответственно. Для примера, если альфа- пределы [3 5], затем значения альфа- данных меньше или равны 3 сопоставить с первым элементом в альфа-карте. Значения альфа- данных, большие или равные 5 сопоставить с последним элементом в альфа-карте. The ALim свойство осей содержит альфа- пределы. The Alphamap свойство рисунка содержит альфа-карту.

  • 'direct' - Интерпретируйте значения как индексы в альфа-карту рисунка. Значения с десятичным фрагментом фиксируются к ближайшему нижнему целому числу:

    • Если значения имеют тип double или single, затем значения 1 или менее сопоставляются с первым элементом альфа-карты. Значения, равные или большие длины альфа-карты последнего элемента альфа-карты.

    • Если значения имеют целое число типов, значения 0 или менее сопоставляются с первым элементом альфа-карты. Значения, равные или большие длины альфа-карты последнего элемента альфа-карты (или до пределов области значений типа). Целые типы uint8, uint16, uint32, uint64 , int8, int16, int32, и int64.

    • Если значения имеют тип logical, затем значения 0 сопоставляются с первым элементом в альфа-карте и значения 1 сопоставляются со вторым элементом в альфа-карте.

Метод интерполяции, заданный как 'nearest' или 'bilinear'. MATLAB использует интерполяцию, чтобы отобразить масштабированную или повернутую версию изображения на вашем экране. Выбранное значение не влияет на массив изображений. Однако MATLAB сохраняет интерполированное визуальное представление изображения, если вы сохраняете рисунок или экспортируете содержимое осей.

Выберите метод интерполяции на основе содержимого вашего изображения и эффекта, которого вы хотите достичь:

  • 'nearest' - Этот метод лучше всего использовать, когда существует небольшое количество пиксельных значений, которые представляют отдельные категории, или когда вы хотите видеть отдельные пиксели в сильно увеличенном виде. Значение пикселя, расположенного в (x, y), является значением пикселя, который ближе всего к (x, y) в оригинальное изображение.

  • 'bilinear' - Этот метод лучше всего подходит практически во всех других ситуациях. Значение пикселя, расположенного в (x, y), является взвешенным средним значением окружающих пикселей в оригинальное изображение. Чтобы минимизировать программные продукты отображения, при сокращении изображения применяется дополнительное сглаживание. Если ваш сеанс работы с MATLAB или рисунок используют средство отображения Painters, то дополнительного сглаживания при сокращении изображения не происходит. Чтобы определить средство отображения, вызовите rendererinfo функция.

Положение

расширить все

Размещение вдоль оси X, заданное в одной из следующих форм:

  • Двухэлементный вектор - Используйте первый элемент как место расположения центра CData(1,1) и второй элемент как место расположения центра CData(m,n), где [m,n] = size(CData). Равномерно распределите центры остальных CData элементы между этими двумя точками.

    Ширина каждого пикселя определяется выражением:

    (XData(2)-XData(1))/(size(CData,2)-1)

    Если XData(1) > XData(2), затем изображение поворачивается влево-вправо.

  • Скаляр - Центральный CData(1,1) в этом месте и каждом последующем элементе по одному модулю.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Размещение вдоль оси Y, заданное в одной из следующих форм:

  • Двухэлементный вектор - Используйте первый элемент как место расположения центра CData(1,1) и второй элемент как место расположения центра CData(m,n), где [m,n] = size(CData). Равномерно распределите центры остальных CData элементы между этими двумя точками.

    Высота каждого пикселя определяется выражением:

    (YData(2)-YData(1))/(size(CData,1)-1)

    Если YData(1) > YData(2), затем изображение поворачивается вверх-вниз.

  • Скаляр - Центральный CData(1,1) в этом месте и каждом последующем элементе по одному модулю.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Интерактивность

расширить все

Состояние видимости, заданное как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • 'on' - Отобразите объект.

  • 'off' - Скрыть объект, не удаляя его. Вы по-прежнему можете получить доступ к свойствам невидимого объекта.

Всплывающая подсказка данных, заданное как DataTipTemplate объект. Можно управлять содержимым, которое появляется в всплывающей подсказке, изменяя свойства базового DataTipTemplate объект. Список свойств см. в разделе Свойства DataTipTemplate.

Пример изменения всплывающих подсказок см. в разделе Создание пользовательских всплывающих подсказок.

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

Примечание

The DataTipTemplate объект не возвращается findobj или findallи не копируется copyobj.

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

Примечание

Если на PickableParts для свойства задано значение 'none' или если HitTest для свойства задано значение 'off', тогда контекстное меню не отображается.

Состояние выбора, заданное как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • 'on' - Выбран. Если вы кликните объект в режиме редактирования графика, то MATLAB устанавливает его Selected свойство к 'on'. Если на SelectionHighlight свойство также установлено в 'on'MATLAB отображает указатели выделения вокруг объекта.

  • 'off' - Не выбран.

Отображение указателей выделения, заданное как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • 'on' - Отображать указатели выделения, когда Selected для свойства задано значение 'on'.

  • 'off' - Никогда не отображать указатели выделения, даже когда Selected для свойства задано значение 'on'.

Усечение объекта до пределов осей, заданная как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • Значение 'on' зажимает части объекта, которые находятся вне пределов осей.

  • Значение 'off' отображает весь объект, даже если его части находятся вне пределов осей. Части объекта могут появиться вне пределов осей, если вы создадите график, установите hold on, заморозите масштабирование оси, а затем создайте объект так, чтобы он был больше исходного графика.

The Clipping свойство осей, содержащих объект, должно быть установлено в 'on'. В противном случае это свойство не влияет. Для получения дополнительной информации о поведении усечения смотрите Clipping свойство осей.

Коллбэки

расширить все

Коллбэк по клику мыши, заданный как одно из следующих значений:

  • Указатель на функцию

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

  • Вектор символов, являющийся действительной командой или функцией MATLAB, которая оценивается в базовом рабочем пространстве (не рекомендуется)

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

  • Объект, выбранный кликом мыши - Доступ к свойствам объекта, выбранного кликом мыши, из функции обратного вызова.

  • Данные о событиях - Пустой аргумент. Замените его на символ тильды (~) в определении функции, чтобы указать, что этот аргумент не используется.

Дополнительные сведения о том, как использовать указатели на функцию для определения функций обратного вызова, см. в разделе «Определение коллбэка».

Примечание

Если на PickableParts для свойства задано значение 'none' или если HitTest для свойства задано значение 'off', тогда этот коллбэк не выполняется.

Функция создания объектов, заданная в качестве одного из следующих значений:

  • Указатель на функцию.

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

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Для получения дополнительной информации об указании коллбэка как указателя на функцию, массива ячеек или вектора символов, см. Раздел «Определение коллбэка».

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

Установка CreateFcn свойство в существующем компоненте не имеет никакого эффекта.

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

Функция удаления объектов, заданная в качестве одного из следующих значений:

  • Указатель на функцию.

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

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Для получения дополнительной информации об указании коллбэка как указателя на функцию, массива ячеек или вектора символов, см. Раздел «Определение коллбэка».

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

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

Контроль выполнения обратного вызова

расширить все

Прерывание коллбэка, заданное как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

Это свойство определяет, можно ли прерывать выполняемый коллбэк. Существует два состояния коллбэка:

  • Обратный коллбэк running - это актуальный на данный момент коллбэк.

  • Обратный коллбэк interrupting - это коллбэк, который пытается прервать текущий коллбэк.

Всякий раз, когда MATLAB вызывает коллбэк, этот коллбэк пытается прервать текущий коллбэк (если он существует). The Interruptible свойство объекта, имеющего текущий коллбэк, определяет, разрешено ли прерывание.

  • Значение 'on' позволяет другим коллбэкам прерывать коллбэки объекта. Прерывание происходит в следующей точке, где MATLAB обрабатывает очередь, например, когда есть drawnow, figure, uifigure, getframe, waitfor, или pause команда.

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

    • Если текущий коллбэк не содержит одну из этих команд, MATLAB завершает выполнение коллбэка без прерывания.

  • Значение 'off' блокирует все попытки прерывания. The BusyAction свойство объекта, имеющего прерывание обратного вызова, определяет, отменяется ли прерывание обратного вызова или помещается в очередь.

Примечание

Прерывание и выполнение коллбэка происходят по-разному в таких ситуациях:

  • Если прерывание обратного вызова является DeleteFcn, CloseRequestFcn или SizeChangedFcn коллбэк, тогда прерывание происходит независимо от Interruptible значение свойства.

  • Если текущий коллбэк выполняющегося в данного момента, waitfor function, тогда прерывание происходит независимо от Interruptible значение свойства.

  • Timer объекты выполняются в соответствии с расписанием независимо от Interruptible значение свойства.

Когда происходит прерывание, MATLAB не сохраняет состояние свойств или отображения. Для примера, объект, возвращенный gca или gcf команда может измениться при выполнении другого коллбэка.

Постановка в очередь коллбэков, заданная как 'queue' или 'cancel'. The BusyAction свойство определяет, как MATLAB обрабатывает выполнение прерываний обратного вызова. Существует два состояния коллбэка:

  • Обратный коллбэк running - это актуальный на данный момент коллбэк.

  • Обратный коллбэк interrupting - это коллбэк, который пытается прервать текущий коллбэк.

Всякий раз, когда MATLAB вызывает коллбэк, этот коллбэк пытается прервать текущий коллбэк. The Interruptible свойство объекта, имеющего текущий коллбэк, определяет, разрешено ли прерывание. Если прерывание не разрешено, то BusyAction свойство объекта, имеющего прерывание обратного вызова, определяет, будет ли оно сброшено или помещено в очередь. Это возможные значения BusyAction свойство:

  • 'queue' - помещает прерывание обратного вызова в очередь вызовов, подлежащих обработке после концов обратного коллбэка.

  • 'cancel' - Не выполняет прерывание обратного вызова.

Возможность осуществить захват кликов мыши, заданная как одно из следующих значений:

  • 'visible' - Захватывать клики мыши только при условии видимости. The Visible свойство должно быть установлено в 'on'. The HitTest свойство определяет, Image ли объект реагирует на нажатие кнопки или если это делает предок.

  • 'none' - Невозможно захватить клики мыши. Кликнув по Image объект передает нажатие кнопки объекту за ним в текущем виде окна рисунка. The HitTest свойство Image объект не влияет.

Ответ на захваченные клики мыши, заданный как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • 'on' - Запуск ButtonDownFcn коллбэк Image объект. Если вы определили ContextMenu Свойство активируйте контекстное меню.

  • 'off' - Инициируйте коллбэки для ближайшего предка Image объект, который имеет одно из следующего:

    • HitTest значение свойства установлено в 'on'

    • PickableParts набор свойств установлен таким образом, чтобы оно позволяло предку захватывать клики мыши

Примечание

The PickableParts свойство определяет, Image ли объект может захватывать клики мыши. Если это невозможно, то HitTest свойство не влияет.

Это свойство доступно только для чтения.

Статус удаления, возвращенный как логическое значение включения/выключения типа matlab.lang.OnOffSwitchState.

MATLAB устанавливает BeingDeleted свойство к 'on' когда DeleteFcn коллбэк начинает выполняться. The BeingDeleted свойство остается установленным на 'on' пока объект компонента не перестанет существовать.

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

Родитель/ребенок

расширить все

Родительский элемент, заданный как Axes, Group, или Transform объект.

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

Вы не можете добавить или удалить дочерние элементы, используя Children свойство. Чтобы добавить дочерний элемент в этот список, установите Parent свойство DataTip объект объекту графика.

Видимость указателя на объект в Children свойство родительского элемента, заданное в качестве одного из следующих значений:

  • 'on' - указатель на объект всегда отображается.

  • 'off' - указатель на объект всегда невидим. Эта опция используется для предотвращения непреднамеренных изменений другой функцией. Установите HandleVisibility на 'off' временно скрыть указатель во время выполнения этой функции.

  • 'callback' - Указатель на объект виден из коллбэков или функций, вызываемых коллбэками, но не из функций, инициируемых из командной строки. Эта опция блокирует доступ к объекту в командной строке, но позволяет функциям обратного вызова обращаться к нему.

Если объект не указан в Children свойство родительского элемента, тогда функции, которые получают указатели на объекты путем поиска иерархии объектов или запросов свойств указателя, не могут вернуть его. Примеры таких функций включают в себя get, findobj, gca, gcf, gco, newplot, cla, clf, и close функций.

Скрытые указатели на объекты все еще действительны. Установите корневой ShowHiddenHandles свойство к 'on' список всех указателей на объекты независимо от их HandleVisibility настройка свойств.

Идентификаторы

расширить все

Это свойство доступно только для чтения.

Тип графического объекта, возвращенный как 'image'.

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

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

Если вы работаете в App Designer, создайте общие или частную собственность в приложении, чтобы делиться данными вместо использования UserData свойство. Для получения дополнительной информации см. раздел «Обмен данными в приложениях App Designer».

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

расширить все

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

Представлено до R2006a