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

detectMSERFeatures

MSER 特徴を検出して MSERRegions オブジェクトを返す

説明

regions = detectMSERFeatures(I) は、2 次元グレースケール入力イメージ I で検出された MSER 特徴に関する情報が含まれる MSERRegions オブジェクト regions を返します。このオブジェクトは、Maximally Stable Extremal Regions (MSER) アルゴリズムを使用して領域を検出します。

[regions,cc] = detectMSERFeatures(I) は、オプションで MSER 領域を連結要素の構造体として返します。

[___] = detectMSERFeatures(I,Name,Value) は、1 つ以上の Name,Value 引数ペアによって指定された追加オプションを設定します。

すべて折りたたむ

イメージを読み取って MSER 領域を検出

I = imread('cameraman.tif');
regions = detectMSERFeatures(I);

返された 'regions' オブジェクト内に格納されたピクセル リストによって記述される MSER 領域を可視化します。

figure; imshow(I); hold on;
plot(regions,'showPixelList',true,'showEllipses',false);

楕円と重心を領域に合わせて表示します。既定の設定では、プロットに楕円と重心が表示されます。

figure; imshow(I); 
hold on;
plot(regions);

MSER 領域を検出します。

I = imread('coins.png');
[regions,mserCC] = detectMSERFeatures(I);

検出されたすべての MSER 領域を表示します。

figure
imshow(I)
hold on
plot(regions,'showPixelList',true,'showEllipses',false)

MSER 領域の離心率を測定して領域の真円度を判断します。

stats = regionprops('table',mserCC,'Eccentricity');

円形領域のみを保持するように離心率値をしきい値処理します (円形領域の離心率は低くなります)。

eccentricityIdx = stats.Eccentricity < 0.55;
circularRegions = regions(eccentricityIdx);

円形領域を表示します。

figure
imshow(I)
hold on
plot(circularRegions,'showPixelList',true,'showEllipses',false)

入力引数

すべて折りたたむ

入力イメージ。グレースケールとして指定します。実数で非スパースでなければなりません。この関数は、MSER 領域を検出する前に、uint8 ではない入力イメージを uint8 に内部的に変換します。

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

名前と値のペアの引数

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

例: 'RegionAreaRange',[30 14000] は、領域のサイズをピクセル単位で指定します。

強度しきい値レベル間のステップ サイズ。'ThresholdDelta' と (0,100] の範囲の数値で構成されるコンマ区切りのペアとして指定します。この値は、安定性をテストするときに極値領域の選択に使用される入力データ型の範囲のパーセント比として表されます。より多くの領域を返すには、この値を小さくします。一般的な値の範囲は、0.8 ~ 4 です。

ピクセル単位の領域のサイズ。'RegionAreaRange' と 2 要素ベクトルで構成されるコンマ区切りのペアとして指定します。ベクトル [minArea maxArea] を指定すると、minArea から maxArea の範囲 (両端を含む) のピクセルを含む領域を選択できます。

強度しきい値が一定でない場合の、極値領域間での最大面積変動。'MaxAreaVariation' と正のスカラー値で構成されるコンマ区切りのペアとして指定します。この値を大きくするとより多くの領域が返されますが、安定性が低下する場合があります。安定した領域は、強度しきい値が変化しても非常に似たサイズになります。一般的な値の範囲は、0.1 ~ 1.0 です。

四角形の関心領域。ベクトルとして指定します。ベクトルは [x y width height] の形式でなければなりません。ROI を指定すると、関数は、[x y] にある [width height] によって指定されたサイズの領域内のコーナーを検出します。[x y] 要素は、領域の左上隅を指定します。

出力引数

すべて折りたたむ

MSER 領域オブジェクト。MSERRegions オブジェクトとして返されます。このオブジェクトには、グレースケール入力イメージで検出された MSER 特徴に関する情報が含まれます。

連結要素の構造体。4 つのフィールドをもつ構造体として返されます。連結要素の構造体は、関数 regionprops を使用して領域のプロパティを測定する場合に役立ちます。4 つのフィールドは次のとおりです。

フィールド説明
Connectivity

MSER 領域の連結性。

既定値: 8

ImageSize

I のサイズ。

NumObjects

I 内の MSER 領域の数。

PixelIdxList

NumObjects ベクトルを含む 1 行 NumObjects 列の cell 配列。各ベクトルは、その要素に対応する MSER 領域内のピクセルの線形インデックスを表します。

アルゴリズム

すべて折りたたむ

強度しきい値レベル

MSER 検出器は、入力イメージの強度範囲をインクリメンタルにステップ実行して、安定領域を検出します。ThresholdDelta パラメーターは、検出器が安定性のテストを行う増分の数を決定します。しきい値のデルタ値は、バケツに水を満たすためのカップのサイズであると考えることができます。カップが小さくなると、バケツをいっぱいにするまでの増分の数が多くなります。バケツは領域の強度プロファイルであると考えることができます。

MSER オブジェクトは、さまざまな強度しきい値による領域サイズの変動をチェックします。安定していると見なされるには、変動が MaxAreaVariation パラメーターの値より小さくなければなりません。

強度プロファイルを一連のバケツを表すイメージであると考えることで、MSER を大まかに説明できます。どのバケツも上面と地面が同一平面上になるように配置され、バケツの 1 つにホースが差し込まれていると想像してください。バケツに水が注がれると、水が溢れて、次のバケツに水がたまり始めます。より小さな水の領域が連結してより大きな水域となり、最後には領域全体が水で満たされます。バケツが水で満たされていく過程で、MSER の安定性条件との照合が行われます。さまざまな強度しきい値で領域が表示され、拡大、マージされます。

参照

[1] Nister, D., and H. Stewenius, "Linear Time Maximally Stable Extremal Regions", Lecture Notes in Computer Science. 10th European Conference on Computer Vision, Marseille, France: 2008, no. 5303, pp. 183–196.

[2] Matas, J., O. Chum, M. Urba, and T. Pajdla. "Robust wide baseline stereo from maximally stable extremal regions." Proceedings of British Machine Vision Conference, pages 384-396, 2002.

[3] Obdrzalek D., S. Basovnik, L. Mach, and A. Mikulik. "Detecting Scene Elements Using Maximally Stable Colour Regions," Communications in Computer and Information Science, La Ferte-Bernard, France; 2009, vol. 82 CCIS (2010 12 01), pp 107–115.

[4] Mikolajczyk, K., T. Tuytelaars, C. Schmid, A. Zisserman, T. Kadir, and L. Van Gool, "A Comparison of Affine Region Detectors"; International Journal of Computer Vision, Volume 65, Numbers 1–2 / November, 2005, pp 43–72 .

拡張機能

R2012a で導入