Main Content

bboxresize

境界ボックスのサイズ変更

説明

bboxB = bboxresize(bboxA,scale) は、scale で指定された量だけ bboxA の境界ボックスのサイズを変更します。この関数は、2 次元と 3 次元の境界ボックスをサポートします。

すべて折りたたむ

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

I = imread('peppers.png');

境界ボックスとラベルを定義します。

bboxA = [
    410 230 100 90
    186 78  80  60
    ]
bboxA = 2×4

   410   230   100    90
   186    78    80    60

labelsA = [
    "garlic"
    "onion"
    ];

イメージと境界ボックスのサイズを変更します。

scale = 1.5; 
J = imresize(I,scale); 
bboxB = bboxresize(bboxA,scale); 

結果を表示します。

figure
I = insertObjectAnnotation(I,'Rectangle',bboxA,labelsA);
J = insertObjectAnnotation(J,'Rectangle',bboxB,labelsA);
imshowpair(I,J,'montage')

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

入力引数

すべて折りたたむ

境界ボックス。M 個の境界ボックスを、M 行 4 列、M 行 5 列、または M 行 9 列の非スパース数値行列として指定します。行列の各行 M は、軸に平行な四角形、回転した四角形、または直方体として境界ボックスを定義します。次の表に、境界ボックスの形式を示します。

境界ボックス説明
軸に平行な四角形

[x y w h] 形式の行をもつ M 行 4 列の数値行列として、空間座標で定義します。ここで、

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

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

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

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

回転した四角形

[xctr yctr xlen ylen yaw] 形式の行をもつ M 行 5 列の数値行列として、空間座標で定義します。ここで、

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

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

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

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

  • yaw は回転角度 (度単位) を指定します。回転は境界ボックスの中心を軸として時計回りに正となります。

Square rectangle rotated by -30 degrees.

直方体

[xctr yctr zctr xlen ylen zlen xrot yrot zrot] 形式の行をもつ M 行 9 列の数値行列として、空間座標で定義します。ここで、

  • M は直方体の数です。

  • xctr、yctr、および zctr は直方体の中心を指定します。

  • xlen、ylen、および zlen はそれぞれ、回転前の x 軸、y 軸、および z 軸に沿った直方体の長さを指定します。

  • xrot、yrot、および zrot はそれぞれ、x 軸、y 軸、および z 軸周りの直方体の回転角度を指定します。回転角度 xrot、yrot、および zrot は、直方体の中心に対する度数です。各回転は、関連する空間軸の正方向に対して時計回りに正となります。関数は、ZYX の順序のオイラー角 [xrot yrot zrot] を想定して回転行列を計算します。

次の図は、これらの値で直方体の位置がどのように決定されるかを示しています。

スケール。スカラーまたは行ベクトルとして指定します。スカラーを指定すると、関数は bboxA の境界ボックスの高さと幅に同じ倍率を適用します。行ベクトルを指定すると、関数はベクトルの最初の要素に係数を適用して境界ボックスの高さをサイズ変更し、2 番目の要素に係数を適用して境界ボックスの幅をサイズ変更します。

出力引数

すべて折りたたむ

ワープされた境界ボックス。M2 個の境界ボックスからなる M2 行 N 列の行列として返されます。返される境界ボックスの数は、入力の境界ボックスの数よりも少なくなります。行列の各行 M2 は、入力 bboxA と同じタイプの 1 つの境界ボックスを定義します。bboxB に浮動小数点データが含まれている場合、関数は bboxA と同じ型でそれを返します。それ以外の場合は bboxBsingle 型として返します。

バージョン履歴

R2019b で導入

すべて展開する