Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

SURFPoints

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

説明

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

作成

説明

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

points = SURFPoints(location,Name=Value) は、前の構文にある引数の任意の組み合わせに加えて、名前と値の引数を 1 つ以上使用してオプションを指定します。たとえば、points = SURFPoints(location,Metric=0.0) は、さらにメトリクス値を 0.0 に設定します。

入力引数

すべて展開する

ポイント座標。形式 [x y] の座標の M 行 2 列の配列として指定します。M は点の数を示します。

プロパティ

すべて展開する

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

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

特徴が検出されたスケール。数値スカラーまたは M 要素ベクトルとして指定します。値は 1.6 以上でなければなりません。

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

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

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

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

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

オブジェクト関数

plot点のプロット
isempty点オブジェクトが空かどうかの判別
lengthNumber of stored points
selectStrongestメトリクスが最も強い点の選択
sizeReturn size of points object
selectUniformSelect uniformly distributed subset of point features

すべて折りたたむ

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

    I = imread('cameraman.tif');

SURF 特徴を検出します。

    points = detectSURFFeatures(I);

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

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

Figure contains an axes object. The axes object contains 3 objects of type image, line. One or more of the lines displays its values using only markers

コマンド ラインで最も強い 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));

Figure contains an axes object. The axes object contains 3 objects of type image, line. One or more of the lines displays its values using only markers

ヒント

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

参照

[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 で導入