ドキュメンテーション

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

superpixels

イメージの 2 次元スーパーピクセル オーバーセグメンテーション

構文

[L,NumLabels] = superpixels(A,N)
[L,NumLabels] = superpixels(___,Name,Value,...)

説明

[L,NumLabels] = superpixels(A,N) は、2 次元のグレースケール イメージまたは RGB イメージ A のスーパーピクセルを計算します。N は作成するスーパーピクセルの数を指定します。この関数は double 型のラベル行列 L と計算された実際のスーパーピクセル数 NumLabels を返します。

関数 superpixels は Simple Linear Iterative Clustering (SLIC) アルゴリズムを使用します。このアルゴリズムは類似値をもつ領域にピクセルを分類します。セグメンテーションなどの画像処理演算でこれらの領域を使用すると、演算の複雑度を低減させることができます。

[L,NumLabels] = superpixels(___,Name,Value,...) は、セグメンテーションの特性を制御する名前と値のペアと共に使用してイメージ A のスーパーピクセルを計算します。

コード生成 サポート: あり。

MATLAB® Function ブロック サポート: なし。

すべて折りたたむ

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

A = imread('kobi.png');

イメージのスーパーピクセルを計算します。

[L,N] = superpixels(A,500);

スーパーピクセルの境界を元のイメージに重ね合わせて表示します。

figure
BW = boundarymask(L);
imshow(imoverlay(A,BW,'cyan'),'InitialMagnification',67)

出力イメージの各ピクセルの色をスーパーピクセル領域の RGB カラーの平均値に設定します。

outputImage = zeros(size(A),'like',A);
idx = label2idx(L);
numRows = size(A,1);
numCols = size(A,2);
for labelVal = 1:N
    redIdx = idx{labelVal};
    greenIdx = idx{labelVal}+numRows*numCols;
    blueIdx = idx{labelVal}+2*numRows*numCols;
    outputImage(redIdx) = mean(A(redIdx));
    outputImage(greenIdx) = mean(A(greenIdx));
    outputImage(blueIdx) = mean(A(blueIdx));
end

figure
imshow(outputImage,'InitialMagnification',67)

入力引数

すべて折りたたむ

入力イメージ。実数、非スパースの行列として指定します。A は 2 次元グレースケール イメージまたは 2 次元 RGB イメージになります。パラメーター isInputLabtrue の場合、入力イメージは single または double でなければなりません。

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

必要なスーパーピクセル数。数値スカラーとして指定します。

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

名前/値のペアの引数

オプションの Name,Value 引数のペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: B = superpixels(A,100,’NumIterations’, 20);

すべて折りたたむ

スーパーピクセルの形状。数値スカラーとして指定します。SLIC アルゴリズムの compactness パラメーターはスーパーピクセルの形状を制御します。値が高いほど、スーパーピクセルの形状は規則的になります。つまり、正方形です。値が低いほど、スーパーピクセルは境界に忠実に従うため形状は不規則になります。許容範囲は [0 Inf) です。compactness の一般的な値は [1,20] の範囲内です。

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

入力イメージ データが L*a*b* 色空間内に存在。論理スカラー true または false に指定します。

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

スーパーピクセルを計算するために使用されるアルゴリズム。次のいずれかの値に指定します。関数 superpixels は Simple Linear Iterative Clustering (SLIC) アルゴリズムの 2 つのバリエーションを使用します。

意味

'slic0'

superpixels は SLIC0 アルゴリズムを使用し、最初の反復後、'Compactness' を適応的に調整します。これは既定の設定です。

'slic'

クラスタリング中、'Compactness' は一定です。

データ型: char

アルゴリズムのクラスタリング フェーズで使用される反復回数。数値スカラーとして指定します。ほとんどの問題では、このパラメーターを調整する必要はありません。

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

出力引数

すべて折りたたむ

ラベル行列。double 型の数値配列として返されます。値は正の整数です。ここで、イメージ内の各スーパーピクセル領域について 1 は 1 番目の領域、2 は 2 番目の領域 (以下同様) を示します。

計算されたスーパーピクセル数。double 型の数値スカラーとして返されます。

詳細

すべて折りたたむ

コード生成

この関数では MATLAB Coder™ を使用した C コードの生成がサポートされています。詳細は、「画像処理のコード生成」を参照してください。

コード生成時には、以下の点に注意してください。

  • すべての文字ベクトルの入力はコンパイル時の定数でなければなりません。

  • 'IsInputLab' の値 (true または false) はコンパイル時の定数でなければなりません。

.

参照

[1] Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Susstrunk, SLIC Superpixels Compared to State-of-the-art Superpixel Methods. IEEE Transactions on Pattern Analysis and Machine Intelligence, Volume 34, Issue 11, pp. 2274-2282, May 2012

[2] Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Susstrunk, SLIC Superpixels. EPFL Technical Report, no. 149300, June 2010.

R2016a で導入

この情報は役に立ちましたか?