Main Content

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

detectORBFeatures

ORB キーポイントの検出

説明

points = detectORBFeatures(I) は、ORB キーポイントに関する情報を含む ORBPoints オブジェクトを返します。ORB キーポイントは、Oriented FAST and rotated BRIEF (ORB) 特徴検出法を使用して、入力イメージから検出されます。

points = detectORBFeatures(I,Name,Value) は、名前と値の引数を 1 つ以上使用してオプションを指定します。

すべて折りたたむ

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

I = imread('businessCard.png');

イメージをグレースケール イメージに変換します。

I = im2gray(I);

グレースケール イメージを表示します。

figure
imshow(I)

Figure contains an axes object. The axes object contains an object of type image.

ORB キーポイントを検出して保存します。

points = detectORBFeatures(I);

グレースケール イメージを表示し、検出された ORB キーポイントをプロットします。検出されたキーポイントの周囲の円の表示を抑制します。ORB キーポイントは、強度分散が高い領域で検出されます。

figure
imshow(I)
hold on
plot(points,'ShowScale',false)
hold off

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

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

I = imread('star.png');

イメージを表示します。

figure
imshow(I)

Figure contains an axes object. The axes object contains an object of type image.

ORB キーポイントを検出して保存します。イメージ分解のスケール係数を 1.01 に、分解レベルの数を 3 に指定します。

points = detectORBFeatures(I,'ScaleFactor',1.01,'NumLevels',3);

イメージを表示し、検出された ORB キーポイントをプロットします。バイナリの形状イメージの変曲点が ORB キーポイントとして検出されます。

figure
imshow(I)
hold on
plot(points)
hold off

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

入力引数

すべて折りたたむ

入力イメージ。M 行 N 列のグレースケールまたはバイナリのイメージとして指定します。入力イメージは、実数で非スパースでなければなりません。

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

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: detectORBFeatures(I,'NumLevels',4)

イメージ分解のスケール係数。'ScaleFactor' と 1 より大きいスカラーで構成されるコンマ区切りのペアとして指定します。分解の各レベルでのスケール値は ScaleFactor(level-1) です。level は [0, Numlevels-1] の範囲の任意の値です。サイズが M×N の入力イメージが与えられた場合、分解の各レベルでのイメージ サイズは Mlevel=MScaleFactor(level1)Nlevel=NScaleFactor(level1) です。

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

分解レベルの数。'NumLevels' と 1 以上のスカラーで構成されるコンマ区切りのペアとして指定します。より多くの分解レベルでイメージからキーポイントを抽出するには、この値を増やします。

キーポイントを抽出するための分解レベルの数は、そのレベルでのイメージ サイズによって制限されます。キーポイントを検出するには、分解レベルでのイメージ サイズが少なくとも 63×63 でなければなりません。分解の最大レベルは次のように計算されます。

levelmax = floor(log(min(M,N))log(63)log(ScaleFactor))+1

'NumLevels' の既定値または指定された値が levelmax より大きい場合、関数は NumLevels を levelmax に変更し、警告を返します。

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

キーポイント検出用の関心領域。'ROI' と [x y width height] の形式のベクトルで構成されるコンマ区切りのペアとして指定します。最初の 2 つの要素は、関心領域の左上隅の位置を表します。最後の 2 つの要素は、関心領域の幅と高さを表します。関心領域の幅と高さは、それぞれ 63 以上の値でなければなりません。

出力引数

すべて折りたたむ

ORB キーポイント。ORBPoints オブジェクトとして返されます。オブジェクトには、入力イメージで検出されたキーポイントに関する情報が含まれます。

アルゴリズム

この関数は、[1]の ORB 特徴検出法を使用して、入力イメージからキーポイントを検出します。

参照

[1] Rublee, E., V. Rabaud, K. Konolige, and G. Bradski. "ORB: An Efficient Alternative to SIFT or SURF." In Proceedings of the 2011 International Conference on Computer Vision, 2564–2571. Barcelona, Spain: IEEE, 2011.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2019a で導入