メインコンテンツ

cornermetric

(非推奨) イメージからのコーナー メトリクス行列の作成

cornermetric は推奨されません。代わりに、Computer Vision Toolbox™ の detectHarrisFeatures (Computer Vision Toolbox) または detectMinEigenFeatures (Computer Vision Toolbox)cornerPoints (Computer Vision Toolbox) オブジェクトを使用してください。詳細については、バージョン履歴を参照してください。

説明

C = cornermetric(I) は、入力イメージ I 内のコーナー特徴を検出することで、コーナー メトリクス行列を作成します。

C = cornermetric(I,method) は、入力イメージ I 内のコーナー特徴を検出することで、コーナー メトリクス行列を作成します。method によって指定されるコーナー検出法は、コーナー特徴を検出するために使用されます。

C = cornermetric(___,Name=Value) では、前のいずれかの構文の入力引数に加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。

すべて折りたたむ

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

I = imread("circles.png");

コーナー メトリクス行列を生成します。フィルター係数を指定します。コーナー検出法の既定値は "Harris" です。

filter = [0.25 0.5 0.25];
C = cornermetric(I,FilterCoefficients=filter);

imregionalmax を使用して、コーナー メトリクス行列からコーナー特徴 (ピクセル) を検出します。

corner_peaks = imregionalmax(C);

検出されたコーナー ピクセルの値を [255 0 0] に設定します。

corner_idx = find(corner_peaks == true);
[r,g,b] = deal(I);
r(corner_idx) = 255;
g(corner_idx) = 0;
b(corner_idx) = 0;
RGB = cat(3,r,g,b);

コーナー メトリクス行列を表示用に調整します。

C_adjusted = imadjust(C);

元のイメージ、調整されたコーナー メトリクス、および検出されたコーナー特徴をモンタージュとして表示します。検出されたコーナー特徴は、RGB 値が [255 0 0] の赤色のピクセルとして表示されます。

montage({I,C_adjusted,RGB},Size=[1 3])
title("Original Image vs. Adjusted Corner Metric Matrix vs. Detected Corner Features");

Figure contains an axes object. The hidden axes object with title Original Image vs. Adjusted Corner Metric Matrix vs. Detected Corner Features contains an object of type image.

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

I = imread("bag.png");

コーナー メトリクス行列を生成します。方法を "MinimumEigenvalue" として指定します。

C = cornermetric(I,"MinimumEigenvalue");

imregionalmax を使用して、コーナー メトリクス行列からコーナー特徴 (ピクセル) を検出します。

corner_peaks = imregionalmax(C);

検出されたコーナー ピクセルの値を [255 0 0] に設定します。

RGB = labeloverlay(I,corner_peaks,Transparency=0,Colormap=[1 0 0]);

コーナー メトリクス行列を表示用に調整します。

C_adjusted = imadjust(C);

元のイメージ、調整されたコーナー メトリクス、および検出されたコーナー特徴をモンタージュとして表示します。検出されたコーナー特徴は、赤色のピクセルとして表示されます。

montage({I,C_adjusted,RGB},Size=[1 3],BorderSize=5,BackgroundColor="w")
title("Original Image vs. Adjusted Corner Metric Matrix vs. Detected Corner Features");

Figure contains an axes object. The hidden axes object with title Original Image vs. Adjusted Corner Metric Matrix vs. Detected Corner Features contains an object of type image.

入力引数

すべて折りたたむ

入力イメージ。mn 列の 2 次元バイナリ イメージまたは 2 次元グレースケール イメージとして指定します。

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

コーナー検出法。"Harris" または "MinimumEigenvalue" として指定します。方法に応じて、次のようになります。

  • "Harris" の場合、関数は Harris コーナー検出器を使用してコーナー メトリクス行列を作成します。

  • "MinimumEigenvalue" の場合、関数は Shi & Tomasi の最小固有値法を使用してコーナー メトリクス行列を作成します。

method を指定しない場合、既定値の "Harris" に設定され、関数は Harris コーナー検出器を使用してコーナー特徴を検出します。

データ型: char | string

名前と値の引数

すべて折りたたむ

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

例: cornermetric(I,SensitivityFactor=0.1) は感度係数 0.1 を指定します。

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

例: cornermetric(I,"SensitivityFactor",0.1) は感度係数 0.1 を指定します。

1 次元空間フィルター マスクの係数。n 要素ベクトルとして指定します。n の値は、3 以上の奇数でなければなりません。既定では、1 次元空間フィルター マスクは 5 要素ベクトルであり、既定のフィルター係数は、fspecial("gaussian",[5 1],1.5) を使用して計算されます。

感度係数。区間 (0, 0.25) の数値スカラーとして指定します。感度係数の値が小さいほど、鋭角のコーナーが検出される可能性が高くなります。

引数 SensitivityFactor は、入力 method"Harris" の場合にのみ有効です。

出力引数

すべて折りたたむ

コーナー メトリクス行列。入力イメージ I と同じサイズの mn 列の行列として返されます。

データ型: double

ヒント

関数 cornercornermetric はいずれもイメージ内のコーナーを検出します。ほとんどの場合、1 ステップでコーナーを検出するには、効率のよい関数 corner を使用してください。コーナーの選択を厳密に制御する必要がある場合は、関数 cornermetric を使用してコーナー メトリクス行列を計算します。次に、コーナー メトリクス行列のピーク値を検出するための独自のアルゴリズムを作成します。

バージョン履歴

R2008b で導入

すべて折りたたむ

参考

|