insertText

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

Описание

пример

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. Можно отобразить неанглийские и английские символы, включая английские числовые значения, с одним шрифтом.

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

Текст числового значения в виде скаляра или вектора. Если вы задаете скалярное значение, то значение используется для всех положений. Длина вектора должна равняться количеству строк в 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 имя аргумента и 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'ГолубойПурпурный, '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'ГолубойПурпурный, '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центр , CenterBottom, RightTop, RightCenter, и RightBottom.

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

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

свернуть все

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

Ограничения

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

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

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

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

Введенный в R2013a