画像があり、SIFT 検出器を使用してキー ポイントを見つけてグループ化したいのですが、SIFT を使用して各キー ポイントのローカル フィーチャを生成したいのですが、どうすればよいでしょうか? 何か提案があれば教えてください。本当に助けていただきありがとうございます
2 に答える
opencv を使用している場合は、これを実行するコマンドを次に示します。matlab を使用している場合は、MATCHING_using surfのリンクを参照してください。
OpenCVの使用::
// 要件に合わせてパラメータを変更できます
double hessianThreshold=200;
int octaves=3;
int octaveLayers=4;
bool upright=false;
vector<KeyPoint>keypoints;
//検出器は画像のキーポイントを検出します。画像は Mat タイプの RGBIMAGE です
SurfFeatureDetector detector( hessianThreshold, octaves, octaveLayers, upright );
detector.detect(RGB_IMAGE, keypoints);
//エクストラクタは、キーポイント周辺の局所特徴を計算します
SurfDescriptorExtractor extractor;
Mat descriptors;
extractor.compute( last_ref, keypoints, descriptors);
// すべての重要なポイントのローカル機能は、記述子マトリックスの行に次々と格納されます...
それが役に立つことを願っています:)
意味がよくわかりませんが、画像から SIFT 特徴を抽出すると、特徴を相互に比較するために使用される特徴記述子が自動的に取得されます。もちろん、フィーチャの位置、サイズ、方向、およびヘッセ値も取得します。
これらの機能を画像内の位置でグループ化することはできますが、現在のところ、これらのグループを比較する方法はわかりません。これらのグループはローカルに関連している可能性がありますが、機能記述子が大幅に異なる可能性があるためです。
また、SURFもお勧めです。より高速であり、特許の妨げにもなりません。
記述子を取得して比較する方法に関する具体的な指示が必要な場合は、OpenCV の例を参照してください。