exponenta event banner

insertText

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

Описание

пример

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

пример

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

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

Figure contains an axes. The axes with title Board contains an object of type image.

Прочитайте изображение.

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

Figure contains an axes. The axes with title Numeric values contains an object of type image.

Отображение символа, отличного от 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');

Figure contains an axes. The axes with title Numeric values contains an object of type image.

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

свернуть все

Входное изображение, определенное как M N 3 truecolor изображениями или 2-м изображением оттенков серого M на Н.

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

Текст Юникод, заданный как одна текстовая строка Юникод или массив ячеек строк Юникод длиной 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' и положительное целое число в диапазоне [1200].

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

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

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

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

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

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

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

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

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

  • Значения RGB должны находиться в диапазоне типа данных изображения. Поддерживаемые цвета: '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