Main Content

insertText

イメージまたはビデオへのテキストの挿入

説明

RGB = insertText(I,position,text) は、text が挿入されたトゥルーカラー イメージを返します。入力イメージ I は、トゥルーカラー イメージまたはグレースケール イメージになります。

RGB = insertText(I,position,numericValue) は、数値が挿入されたトゥルーカラー イメージを返します。

RGB = insertText(___,Name=Value) は、前の構文にある引数の任意の組み合わせに加えて、名前と値の引数を 1 つ以上使用してオプションを指定します。たとえば、Color="red" のようにします。

すべて折りたたむ

イメージを読み取ります。

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 object. The axes object 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 object. The axes object 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','LucidaSansRegular','BoxColor','w');

数値テキストが挿入されたイメージを表示します。

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

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

入力引数

すべて折りたたむ

入力イメージ。M×N×3 のトゥルーカラー イメージ、または M 行 N 列の 2 次元グレースケール イメージとして指定します。

データ型: single | double | int16 | uint8 | uint16

Unicode テキスト。1 つの UNICODE テキスト文字列、または長さ M の UNICODE 文字列の cell 配列として指定します。ここで、M は position の行数です。関数は、ピクセルを text の値で上書きします。cell 配列の長さと position 行列の行数は等しくなければなりません。1 つの文字列を指定すると、関数はそれを position 行列のすべての位置に対して使用します。ほとんどの Unicode フォントには ASCII 文字が含まれます。1 つのフォントで、英語以外の文字と、数値を含む英語の文字を表示できます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

数値テキスト。スカラーまたはベクトルとして指定します。スカラー値を指定すると、すべての位置にその値が使用されます。ベクトル長と position 行列の行数は等しくなければなりません。数値は、sprintf 形式 '%0.5g' を使用して文字ベクトルに変換されます。

データ型: char

挿入テキストの位置。ベクトルまたは [x y] 座標の M 行 2 列の行列として指定します。各行は、テキストの境界ボックスの AnchorPoint の [x y] 座標を表します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name を引用符で囲みます。

例: Font="Calibri" はフォント フェースを Calibri に設定します。

テキストのフォント フェース。文字ベクトルとして指定します。フォント フェースは、システムにインストールされている使用可能な TrueType フォントでなければなりません。システムで使用可能なフォントの一覧を表示するには、MATLAB® コマンド プロンプトで listTrueTypeFonts と入力します。

データ型: char

フォント サイズ。[1,200] の範囲の正の整数として指定します。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

テキストの色。文字ベクトル、文字ベクトルの cell 配列、ベクトル、または M 行 3 列の行列として指定します。テキスト文字列ごとに異なる色を指定することも、すべてのテキスト文字列に対して 1 つの色を指定することもできます。カラー値は [0,255] の範囲で指定しなければなりません。[0,1] の範囲の値は、この関数で使用する前に値 255 でスケーリングしなければなりません。例: [255 255 255].*colorvalue

サポートされる色は、"blue""green""red""cyan""magenta""yellow""black"、および "white" です。

形式
すべてのテキスト文字列に 1 つの色を指定

string または文字の色の名前

"r"

"red"

1 行 3 列のベクトル (RGB 3 成分)

[255 0 0]1-by-3 grid, with columns labeled r,g,b respectively.

テキスト文字列ごとに色を指定M 要素ベクトル

["red","yellow","blue"]

M 行 3 列の行列 (RGB 値のリスト)

255 0 0
255 0 0
0 255 255
M-by-3 grid, with columns labeled r,g,b respectively.

データ型: cell | char | uint8 | uint16 | int16 | double | single

ボックスの色。文字ベクトル、文字ベクトルの cell 配列、ベクトル、または M 行 3 列の行列として指定します。ボックスごとに異なる色を指定することも、すべてのボックスに対して 1 つの色を指定することもできます。カラー値は [0,255] の範囲で指定しなければなりません。[0,1] の範囲の値は、この関数で使用する前に値 255 でスケーリングしなければなりません。たとえば、[255 255 255].*colorvalue のようにします。

サポートされる色は、"blue""green""red""cyan""magenta""yellow""black"、および "white" です。

形式
すべてのボックスに 1 つの色を指定

string または文字の色の名前

"r"

"red"

1 行 3 列のベクトル (RGB 3 成分)

[255 0 0]1-by-3 grid, with columns labeled r,g,b respectively.

ボックスごとに色を指定M 要素ベクトル

["red","yellow","blue"]

M 行 3 列の行列 (RGB 値のリスト)

255 0 0
255 0 0
0 255 255
M-by-3 grid, with columns labeled r,g,b respectively.

データ型: cell | char | uint8 | uint16 | int16 | double | single

テキスト ボックスの不透明度。[0,1] の範囲のスカラー値として指定します。値 0 は、完全に透明なテキスト ボックス、またはボックスなしに対応します。値 1 は、完全に不透明なテキスト ボックスに対応します。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

テキスト ボックスの基準点。文字ベクトル値として指定します。アンカー ポイントは、テキスト ボックスの相対位置を定義します。テキスト ボックスのアンカー ポイントを、テキストに対応する position によって定義される [x,y] 座標に配置することによって、テキスト ボックスの位置を指定できます。たとえば、テキスト ボックスの中心を position 入力で指定した [x,y] 座標に配置するには、AnchorPointCenter に設定します。

サポートされる位置は、LeftTopLeftCenterLeftBottomCenterTopCenterCenterBottomRightTopRightCenter および RightBottom です。

データ型: char

出力引数

すべて折りたたむ

出力イメージ。指定のテキストが挿入された M x N x 3 のトゥルーカラー イメージとして返されます。

制限

  • 出力イメージに文字が表示されていない場合、フォントにその文字が含まれなかったことを意味します。異なるフォントを選択します。システムで使用可能なフォントの一覧を表示するには、MATLAB プロンプトで listTrueTypeFonts と入力します。

  • フォント サイズを大きくすると、前処理の時間とメモリ使用量も増加します。

  • 関数 insertText は、特定の複合文字では機能しません。たとえば、文字コードに対応する 1 つのグリフをレンダリングすると、隣接するグリフの位置、形状またはサイズに影響する場合、テキストを挿入することはできません。

拡張機能

バージョン履歴

R2013a で導入