insertText

Вставьте текст в изображение или видео

Синтаксис

RGB = insertText(I,position,text)
RGB = insertText(I,position,numericValue)
RGB = insertText(___,Name,Value)

Описание

пример

RGB = insertText(I,position,text) возвращает изображение истинного цвета со вставленным text. Входное изображение, I, может быть или истинным цветом или полутоновым изображением.

пример

RGB = insertText(I,position,numericValue) возвращает изображение истинного цвета со вставленными числовыми значениями.

RGB = insertText(___,Name,Value) дополнительные опции использования заданы одним или несколькими аргументами пары Name,Value.

Примеры

свернуть все

Чтение изображения.

I = imread('board.tif');

Создайте тексты, которые содержат части.

text_str = cell(3,1);
conf_val = [85.212 98.76 78.342]; 
for ii=1:3
   text_str{ii} = ['Confidence: ' num2str(conf_val(ii),'%0.2f') '%'];
end

Задайте положения и цвета текстовых полей.

position = [23 373;35 185;77 107]; 
box_color = {'red','green','yellow'};

Вставьте текст с новым размером шрифта, цветом поля, непрозрачностью и цветом текста.

RGB = insertText(I,position,text_str,'FontSize',18,'BoxColor',...
    box_color,'BoxOpacity',0.4,'TextColor','white');

Отобразите изображение.

figure
imshow(RGB)
title('Board');

Чтение изображения.

I = imread('peppers.png');

Задайте (x, _y_) положение для текста и значения.

position =  [1 50; 100 50];
value = [555 pi];

Вставьте текст с помощью нижней левой части в качестве точки привязки.

RGB = insertText(I,position,value,'AnchorPoint','LeftBottom');

Отобразите изображение с числовым вставленным текстом.

figure
imshow(RGB),title('Numeric values');

Отобразите символ non-ASCII (U+014C)

OWithMacron=native2unicode([hex2dec('C5') hex2dec('8C')],'UTF-8');
RGB = insertText(RGB,[256 50],OWithMacron,'Font','LucidaBrightRegular','BoxColor','w');

Отобразите изображение с числовым вставленным текстом.

figure
imshow(RGB),title('Numeric values');

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

свернуть все

Введите изображение, заданное как M-by-N-by-3 изображение истинного цвета или M-by-N 2D полутоновое изображение.

Типы данных: single | double | int16 | uint8 | uint16

Текст Unicode, заданный как одна текстовая строка Unicode или массив ячеек строк Unicode длины M, где M является количеством строк в position. Функция перезаписывает пиксели со значением text. Длина массива ячеек должна равняться количеству строк в матрице position. Если вы задаете одну строку, функция использует ее для всех положений в матрице position. Большинство шрифтов юникода содержит символы ASCII. Можно отобразить неанглийские и английские символы, включая английские числовые значения, с одним шрифтом.

Типы данных: char

Текст числового значения, заданный как скаляр или вектор. Если вы задаете скалярное значение, то значение используется для всех положений. Длина вектора должна равняться количеству строк в матрице position. Числовые значения преобразованы в вектор символов с помощью формата sprintf '%0.5g'.

Типы данных: char

Положение вставленного текста, заданного как вектор или M-by-2 матрица [x y] координаты. Каждая строка представляет [x y] координата для AnchorPoint текстовой ограничительной рамки.

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

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

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

Пример: 'AnchorPoint', 'LeftTop'

Поверхность шрифта текста, заданного как пара, разделенная запятой, состоящая из 'Font' и вектора символов. Поверхность шрифта должна быть одним из доступных truetype шрифтов, установленных в вашей системе. Чтобы получить список доступных шрифтов в вашей системе, введите listTrueTypeFonts в командной строке MATLAB®.

Типы данных: char

Размер шрифта, заданный как пара, разделенная запятой, состоящая из ' FontSize ' и положительное целое число в области значений [1,200].

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

Цвет текста, заданный как пара, разделенная запятой, состоящая из ' TextColor ' и вектор символов, массив ячеек из символьных векторов или матрица. Можно задать различный цвет для каждого вектора символов или один цвет для всех векторов символов.

  • Чтобы задать цвет для каждого вектора текстового символа, установите TextColor на массив ячеек количества M цветных векторов символов. Или, можно установить его на M-by-3 матрица значений цвета вектора символов RGB.

  • Чтобы задать один цвет для всех векторов текстового символа, установите TextColor или на цветной вектор символов или на [R G B] вектор красных, зеленых, и синих значений.

  • Значения RGB должны быть в области значений типа данных image. Поддерживаемые цвета: 'blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black' и 'white'.

Типы данных: cell | char | uint8 | uint16 | int16 | double | single

Цвет текстового поля, заданный как пара, разделенная запятой, состоящая из ' BoxColor ' и вектор символов, массив ячеек вектора символов или матрица. Можно задать различный цвет для каждого текстового поля или один цвет для всех полей.

  • Чтобы задать цвет для каждого текстового поля, установите BoxColor на массив ячеек количества M цветных векторов символов. Или, можно установить его на M-by-3 матрица количества M RGB (красный, зеленый, и синий) значения цвета вектора символов.

  • Чтобы задать один цвет для всех текстовых полей, установите BoxColor или на цветной вектор символов или на [R G B] вектор. [R G B] вектор содержит красные, зеленые, и синие значения.

  • Значения RGB должны быть в области значений типа данных image. Поддерживаемые цвета: 'blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black' и 'white'.

Типы данных: cell | char | uint8 | uint16 | int16 | double | single

Непрозрачность текстового поля, заданного как пара, разделенная запятой, состоящая из 'BoxOpacity' и скалярного значения в области значений [0,1]. Значение 0 соответствует полностью прозрачному текстовому полю или никакому полю. Значение 1 соответствует полностью непрозрачному текстовому полю.

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

Контрольная точка текстового поля, заданная как пара, разделенная запятой, состоящая из 'AnchorPoint' и значения вектора символов. Точка привязки задает относительное местоположение на текстовом поле. Можно расположить текстовое поле путем размещения его точки привязки в [x, y] координата, заданная соответствующим position для текста. Например, чтобы разместить центр текстового поля, чтобы быть в [x, y] координирует вас заданный с входом position, затем установил AnchorPoint на Center.

Поддержанными позициями является LeftTop, LeftCenter, LeftBottom, CenterTop, Center, CenterBottom, RightTop, RightCenter и RightBottom.

Типы данных: char

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

свернуть все

Выходное изображение, возвращенное как M-by-N-by-3 изображение истинного цвета с заданным вставленным текстом.

Ограничения

  • Если вы не видите символов в выходном изображении, это означает, что шрифт не содержал символ. Выберите различный шрифт. Получить список доступных шрифтов в вашей системе, в посдказке MATLAB, listTrueTypeFonts типа.

  • Увеличение размера шрифта также увеличивает время предварительной обработки и использование памяти.

  • Функция insertText не работает на определенные составные символы. Например, вы не можете вставить текст, когда рендеринг одного глифа, соответствующего коду символа, влияет на положение, форму или размер смежного глифа.

Расширенные возможности

Введенный в R2013a