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

Типы данных: 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 имя аргумента и 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