最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

bboxOverlapRatio

境界ボックスのオーバーラップ率の計算

構文

overlapRatio = bboxOverlapRatio(bboxA,bboxB)
overlapRatio = bboxOverlapRatio(bboxA, bboxB, ratioType)

説明

overlapRatio = bboxOverlapRatio(bboxA,bboxB) は、bboxA および bboxB の境界ボックスの各ペア間のオーバーラップ率を返します。関数は、0 および 1 の間の overlapRatio 値を返します。1 は、完全なオーバーラップを意味します。

overlapRatio = bboxOverlapRatio(bboxA, bboxB, ratioType) により、その割合の計算に使用する方法をさらに指定できます。ratioType'Union' または 'Min' のいずれかに設定しなければなりません。

すべて折りたたむ

2 つの境界ボックスを形式 [x y width height] で定義します。

bboxA = [150,80,100,100]; 
bboxB = bboxA + 50;

境界ボックスをイメージ上に表示します。

I = imread('peppers.png');
RGB = insertShape(I,'FilledRectangle',bboxA,'Color','green');
RGB = insertShape(RGB,'FilledRectangle',bboxB,'Color','yellow');
imshow(RGB)

2 つの境界ボックス間のオーバーラップ率を計算します。

overlapRatio = bboxOverlapRatio(bboxA,bboxB)
overlapRatio = 0.0833

2 つのセットの境界ボックスを無作為に生成します。

bboxA = 10*rand(5,4); 
bboxB = 10*rand(10,4);

ボックスの幅と高さが正であることを確認してください。

bboxA(:,3:4) = bboxA(:,3:4) + 10;
bboxB(:,3:4) = bboxB(:,3:4) + 10;

各ペアの間のオーバーラップ率を計算します。

overlapRatio = bboxOverlapRatio(bboxA,bboxB)
overlapRatio = 5×10

    0.2431    0.2329    0.3418    0.5117    0.7972    0.1567    0.1789    0.4339    0.0906    0.5766
    0.3420    0.1655    0.7375    0.5188    0.2786    0.3050    0.2969    0.4350    0.2477    0.2530
    0.4844    0.3290    0.3448    0.1500    0.1854    0.4976    0.5629    0.4430    0.5027    0.2685
    0.3681    0.0825    0.3499    0.0840    0.0658    0.5921    0.6498    0.1930    0.7433    0.0676
    0.3752    0.1114    0.3114    0.0696    0.0654    0.5408    0.6234    0.2046    0.7557    0.0717

入力引数

すべて折りたたむ

境界ボックス。M 行 4 列の行列として指定します。bboxA の各行には、[x y width height] の形式のベクトルが含まれます。x および y は、境界ボックスの左上隅に対応します。境界ボックスの入力 bboxA および bboxB は、実数、有限、非スパースでなければなりません。

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

境界ボックス。M 行 4 列の行列として指定します。bboxB の各行には、[x y width height] の形式のベクトルが含まれます。x および y は、境界ボックスの左上隅に対応します。境界ボックスの入力 bboxA および bboxB は、実数、有限、非スパースでなければなりません。

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

割合のタイプ。文字ベクトル 'Union' または 'Min' として指定します。

  • 割合のタイプを 'Union' に設定して、bboxA および bboxB の間の交差部分をその 2 つの和集合部分の面積で除算して割合を計算します。

  • 割合のタイプを 'Min' に設定して、bboxA および bboxB の間の交差部分をその 2 つの境界ボックスの最小面積で除算して割合を計算します。

データ型: char

出力引数

すべて折りたたむ

2 つの境界ボックス間のオーバーラップ率。M 行 N 列の行列として返されます。出力行列の各 (I、J) 要素は、bboxA の行 I と bboxB の行 J の間のオーバーラップ率に対応します。関数は、0 と 1 の間の overlapRatio を返します。1 は、完全なオーバーラップを意味します。bboxA または bboxB のいずれかが double の場合、関数は overlapRatiodouble で返します。それ以外の場合は single として返します。

関数は、割合のタイプに基づいてオーバーラップ率を計算します。ratioType'Union' または 'Min' に設定できます。

データ型: single | double

拡張機能

R2014b で導入