Main Content

integralImage3

3 次元インテグラル イメージの計算

説明

J = integralImage3(I) はグレースケール ボリューム イメージ I から積分イメージ J を計算します。

すべて折りたたむ

3 次元の入力イメージを作成します。

I = reshape(1:125,5,5,5);

3 x 3 x 3 のサブボリュームを [startRow, startCol, startPlane, endRow, endCol, endPlane] として定義します。

[sR, sC, sP, eR, eC, eP] = deal(2, 2, 2, 4, 4, 4);

入力イメージからインテグラル イメージを作成し、I の 3 x 3 x 3 のサブボリュームの和を計算します。

J = integralImage3(I);
regionSum = J(eR+1,eC+1,eP+1) - J(eR+1,eC+1,sP) - J(eR+1,sC,eP+1) ...
        - J(sR,eC+1,eP+1) + J(sR,sC,eP+1) + J(sR,eC+1,sP) ... 
        + J(eR+1,sC,sP) -J(sR,sC,sP)
regionSum = 1701

ピクセルの和が正しいことを確認します。

sum(sum(sum(I(sR:eR, sC:eC, sP:eP))))
ans = 1701

入力引数

すべて折りたたむ

グレースケール ボリューム。3 次元の数値配列として指定します。

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

出力引数

すべて折りたたむ

積分イメージ。数値配列として返されます。この関数は積分イメージの上側と左側および最初の平面に対してゼロ パディングする結果、size(J) = size(I) + 1 となります。出力のクラスは double です。出力の積分イメージの最終的なサイズは size(J) = size(I) + 1 に等しくなります。こうしたサイズ設定により、すべてのイメージ境界でピクセル和の計算が容易になります。積分イメージ J は、基本的に cumsum(cumsum(cumsum(I),2),3) の値をパディングしたものです。

データ型: double

詳細

すべて折りたたむ

積分イメージ

"積分イメージ" の各ピクセルは、上側および左側にあるピクセルの総和になります。積分イメージを使用すると、イメージの部分領域の総和を高速に計算できます。積分イメージの使用は Viola-Jones アルゴリズムによって一般に普及しました。積分イメージはピクセルの総和の計算を容易にし、近傍のサイズにかかわらず定数時間で実行できます。

拡張機能

バージョン履歴

R2015b で導入

すべて展開する