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

SURFPoints

SURF 関心点を格納するオブジェクト

説明

このオブジェクトを使用すると、関数 detectSURFFeatures と関数 extractFeatures の間でデータを受け渡すことができます。これらの関数によって返されるデータの操作とプロットに使用することもできます。このオブジェクトを使用すると、対話形式で点を埋めることができます。SURF 以外の関心点検出器と SURF 記述子を混在させる必要がある場合には、この方法を使用できます。

作成

構文

points = SURFPoints(Location)
points = SURFPoints(location,Name,Value)

説明

points = SURFPoints(Location) は、点の座標 [x y] の M 行 2 列の配列 Location から SURFPoints オブジェクトを構築します。

points = SURFPoints(location,Name,Value) は、1 つ以上の名前と値のペアを使用してプロパティを設定します。各プロパティ名を引用符で囲みます。たとえば、points = SURFPoints('Metric',0.0) です。

入力引数

すべて展開する

点の座標。M 行 2 列の配列として指定します。Location 入力には、M 個の点 [x y] が含まれます。

プロパティ

すべて展開する

オブジェクトが保持する点の数。数値として指定します。

点の位置。点の座標 [x y] の M 行 2 列の配列として指定します。

特徴検出時のスケール。1.6 以上の値として指定します。

検出された特徴の強度。数値として指定します。BRISK アルゴリズムは、近似されたヘッシアンの行列式を使用します。

検出された特徴の向き。ラジアン単位の角度として指定します。角度は、Location プロパティによって指定された原点を使用して X 軸から反時計回りに測定されます。このプロパティは手動で設定しないでください。代わりに、extractFeatures を呼び出して、この値を埋めてください。関数 extractFeatures は、既定値 0.0 を変更します。Orientation は主に、可視化を行う場合に役立ちます。

検出プロセスの間に決定されたラプラシアンの符号。-10、または 1 として指定します。このパラメーターを使用して、特徴のマッチング プロセスを高速化できます。

メトリクス値が同一でラプラシアンの符号が異なるブロブは、強度値が異なる場合があります。例として、黒い背景に対する白いブロブと、白い背景に対する黒いブロブが挙げられます。このパラメーターを使用して、マッチしないブロブを迅速に排除できます。

SURF 以外の検出器の場合、このプロパティは関連しません。たとえば、コーナー特徴の場合、単に既定値の 0 を使用できます。

オブジェクト関数

plotPlot points
isemptyDetermine if points object is empty
lengthNumber of stored points
selectStrongestSelect points with strongest metrics
sizeReturn the size of a points object
selectUniformSelect uniformly distributed subset of feature points

すべて折りたたむ

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

    I = imread('cameraman.tif');

SURF 特徴を検出します。

    points = detectSURFFeatures(I);

最も強い 10 個の点の位置とスケールを表示します。

    strongest = points.selectStrongest(10);
    imshow(I); hold on;
    plot(strongest);

コマンド ラインで最も強い 10 個の点の [x y] 座標を表示します。

    strongest.Location
ans = 10x2 single matrix

  139.7482   95.9542
  107.4502  232.0347
  116.6112  138.2446
  105.5152  172.1816
  113.6975   48.7220
  104.4210   75.7348
  111.3914  154.4597
  106.2879  175.2709
  131.1298   98.3900
  124.2933   64.4942

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

    I = imread('cameraman.tif');

SURF 特徴を検出します。

    points = detectSURFFeatures(I);

最後の 5 個の点を表示します。

    imshow(I); hold on;
    plot(points(end-4:end));

ヒント

SURFPoints は多くの点を保持できますが、スカラー オブジェクトです。そのため、numel(surfPoints) は常に 1 を返します。この値は、オブジェクトに保持されている点の実際の数を返す length(surfPoints) とは異なる場合があります。

参照

[1] Bay, H., A. Ess, T. Tuytelaars, and L. Van Gool. “SURF:Speeded Up Robust Features.” Computer Vision and Image Understanding (CVIU).Vol. 110, No. 3, pp. 346–359, 2008.

拡張機能

R2011b で導入