Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

insertShape

イメージまたはビデオへの形状の挿入

説明

RGB = insertShape(I,shape,position) は、指定した shape をトゥルーカラーまたはグレースケールのイメージ I に挿入します。関数は、ピクセル値を上書きすることによって形状を描画し、トゥルーカラー イメージを返します。

RGB = insertShape(___,Name=Value) は、前の構文の入力引数の入力引数に加えて、名前と値の引数を 1 つ以上使用してオプションを指定します。たとえば、LineWidth=5 は、挿入する形状の線幅の値を 5 に設定します。

すべて折りたたむ

イメージをワークスペースに読み取ります。

I = imread("peppers.png");

境界線の幅が 5 ピクセルの円をイメージ上に配置します。

RGB = insertShape(I,"circle",[150 280 35],LineWidth=5);

塗りつぶされた三角形と塗りつぶされた六角形をイメージ上に配置します。

pos_triangle = [183 297 302 250 316 297];
pos_hexagon = [340 163 305 186 303 257 334 294 362 255 361 191];
RGB = insertShape(RGB,"filled-polygon",{pos_triangle pos_hexagon}, ...
    ShapeColor=["white","green"],Opacity=0.7);

結果のイメージを表示します。

imshow(RGB)

Figure contains an axes object. The axes object contains an object of type image.

入力引数

すべて折りたたむ

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

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

形状のタイプ。"rectangle""filled-rectangle""line""polygon""filled-polygon""circle""filled-circle"、または "projected-cuboid" として指定します。

データ型: char | string

形状の位置。次の表に示すように、形状のタイプに従って指定します。

形状位置

rectangle

filled-rectangle

1 つ以上の軸に揃えられた四角形または塗りつぶされた四角形の場合、M 行 4 列の数値行列として指定します。ここで、各行は [xywidthheight] 形式の四角形を指定します。

  • M は軸に平行な四角形の数です。

  • x と y は四角形の左上隅を指定します。

  • w は四角形の幅、つまり x 軸に沿った長さを指定します。

  • h は四角形の高さ、つまり y 軸に沿った長さを指定します。

[x1y1width1height1x2y2width2height2xMyMwidthMheightM]

Two rectangles for M=2,specified by x, y, width, and height labeled for each rectangle.

1 つ以上の回転した四角形の場合、空間座標で M 行 5 列の数値行列として指定します。ここで、各行は [xctr yctr w h yaw] 形式の回転した四角形を指定します。

  • M は回転した四角形の数です。

  • xctr および yctr は四角形の中心を指定します。

  • w は四角形の幅、つまり、回転前の x 軸に沿った長さを指定します。

  • h は四角形の高さ、つまり、回転前の y 軸に沿った長さを指定します。

  • yaw は回転角度 (度単位) を指定します。回転は四角形の中心を軸として時計回りに正となります。

Square rectangle rotated by -30 degrees.

circle

filled-circle

1 つ以上の円の場合、空間座標を M 行 3 列の数値行列として指定します。ここで、各行は [xctr yctr radius] 形式の円を指定します。

  • M は円の数です。

  • xctr と yctr は円の中心を指定します。

  • radius は円の半径を指定します。

[xctr1yctr1radius1xctr2yctr2radius2xctrMyctrMradiusM]

Two circles for M=2, with radius and center points defined.

line

1 つ以上のラインの場合、以下の形式のいずれかを使用して、端点が繋がっている 1 本のライン、同じ数の端点をもつ複数のライン、または異なる数の端点をもつ複数のラインを指定するための空間座標を指定します。

  • 端点が繋がっている 1 本のライン — P 行 2 列の行列として指定します。ここで、各行は [x y] の形式で端点を指定します。また、行の端点は次の行の端点と直接繋がっています。P はライン内の端点の数です。

  • 同じ数の端点をもつ複数のライン — M 行 2P 列の行列として指定します。各行は、[x1 y1 x2 y2 ... xp yp] の形式で 1 本のラインの連続する端点を指定します。各 [x y] のペアは、単一の端点の座標です。M は指定する行の数、P は 1 行あたりの端点の数です。

  • 異なる数の端点をもつ複数のライン — M 行 1 列の cell 配列として指定します。各セルには、1 本のラインの端点を P 行 2 列の行列または 1 行 2P 列のベクトルとして格納します。M は指定する行の数、P は各行の端点の数です。

Two lines for M=2, with endpoints defined as [x11,y11], [x12,y12] and [x21,y21], [x22,y22].

polygon

filled-polygon

1 つ以上の多角形の場合、空間座標で M 行 1 列の cell 配列として指定します。各セルには、[x y] 頂点位置からなる L 行 2 列の行列、または [x1, y1, x2,y2, … xL,yL ] の形式の連続する頂点位置からなる 1 行 2L 列のベクトルを格納します。

  • M は多角形の数です。

  • 各 [x y] ペアは頂点の位置または端点を記述します。

  • L は、多角形の頂点またはラインの端点の数です。それぞれの多角形またはラインには、異なる数の頂点または端点を含めることができます。

Two polygons, for M=2, with L=5 for the number of vertices in each polygon. Each vertex location defined of the form (xmn,ymn), where m specifies the polygon and n specifies the vertex.

projected-cuboid

1 つ以上の投影された直方体の場合、空間座標で 8×2×M の配列または M 行 8 列の行列として指定します。ここで、M は投影された直方体の数です。

8×2×M の配列として指定する場合、各行には投影された直方体の頂点の位置 [x y] が含まれていなければなりません。頂点が繋がって 6 つの面をもつ直方体を形成します。入力頂点の順序は、図に示されている順序と一致しなければなりません。

M 行 8 列の行列として指定する場合、各行は投影された直方体の前面と背面の寸法を [x1 y1 w1 h1 x2 y2 w2 h2] の形式で指定します。ここで、[x1 y1] と [x2 y2] はそれぞれ前面と背面の左上の座標を指定し、[w1 h1] と [w2 h2] は対応する幅と高さを指定します。

Cuboid showing numbered vertices. The number starts with 1 assigned to the top right corner of the front facing rectangle. Going counter-clockwise 1-4 for the top face of cuboid, then 5-8 for the bottom face. The positive Z-axis goes up, the positive Y-axis goes to the right and the positive X-axis faces forward.

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

名前と値の引数

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

例: insertShape(I,"circle",position,Color="yellow") は、形状の色を黄色に設定します。

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

例: insertShape(I,"circle",position,"Color","yellow") は、形状の色を黄色に設定します。

形状の境界線の幅。正の整数としてピクセル単位で指定します。この引数は、"Rectangle""Line""Polygon"、および "Circle" の形状にのみ適用されます。

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

形状の色。色の省略名、色の名前、色名のベクトル、RGB 3 成分の 3 列の行列として指定します。

サポートされている色の表には範囲 [0, 1] で RGB 強度を掲載していますが、RGB 3 成分の指定は選択するデータ型の範囲で行わなければなりません。たとえば、この引数を uint8 の値の行列として指定する場合、各強度値を [0, 255] の範囲に変換しなければなりません。掲載されている強度値を uint8 データ型に変換するには、コード uint8(255*intensity) を使用します。ここで、intensity は、表に掲載されている RGB 3 成分の値です。

形状ごとに異なる色を指定したり、すべての形状に 1 つの色を指定したりできます。すべてのマーカーに 1 つの色を指定するには、ShapeColor を色の名前または [R G B] ベクトルとして指定します。

仕様形式
すべての形状 (またはマーカー) に 1 つの色を指定

色の省略名または色の名前

"r"

"red"

RGB 3 成分

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

各形状 (またはマーカー) の色を指定

色名のベクトル

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

RGB 3 成分の 3 列の行列

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

次の表に、サポートされている形状の色を示します。

色の名前省略名RGB 3 成分外観
"red""r"[1 0 0]

Sample of the color red

"green""g"[0 1 0]

Sample of the color green

"blue""b"[0 0 1]

Sample of the color blue

"cyan" "c"[0 1 1]

Sample of the color cyan

"magenta""m"[1 0 1]

Sample of the color magenta

"yellow""y"[1 1 0]

Sample of the color yellow

"black""k"[0 0 0]

Sample of the color black

"white""w"[1 1 1]

Sample of the color white

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

塗りつぶし形状の不透明度。[0 1] の範囲のスカラーとして指定します。引数 Opacity は、"filled-rectangle""filled-polygon"、および "filled-circle" の形状にのみ適用されます。

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

形状のエッジの平滑化。logical の 1 (true) または 0 (false) として指定します。true 値は、アンチエイリアシング フィルターを有効にして形状のエッジを平滑化します。この値は四角形以外の形状に対してのみ適用されます。アンチエイリアシングを有効にすると、形状の描画にかかる時間が長くなります。

データ型: logical

出力引数

すべて折りたたむ

出力イメージ。M×N×3 のトゥルーカラー イメージとして返されます。

拡張機能

バージョン履歴

R2014a で導入

すべて展開する