特徴点抽出
↓
特徴量記述の計算の実行
↓
マッチング
少し突っ込めば、さらに双方向マッチングの実施+マッチング距離の閾値以下の除去があります。それを入れると、
特徴点抽出
↓
特徴量記述の計算の実行
↓
双方向マッチング
↓
マッチング距離の閾値以下の除去
それでは、一気にコードを見てみましょう。(ORBを使用)
// FeatureDetectorオブジェクトの生成
Ptr<FeatureDetector> detector = new ORB(80, 1.25f, 4, 7, 0, 2, 0, 7);
// DescriptionExtractorオブジェクトの生成
Ptr<DescriptorExtractor> extractor = DescriptorExtractor::create("ORB");
// DescriptorMatcherオブジェクトの生成
Ptr<DescriptorMatcher> matcher = DescriptorMatcher::create("BruteForce-Hamming");
// 特徴点情報を格納するための変数
vector<KeyPoint> keypoints1;
vector<KeyPoint> keypoints2;
// Extract feature points
detector->detect(img1, keypoints1);
detector->detect(img2, keypoints2);
// 画像の特徴情報を格納するための変数
Mat descriptor1;
Mat descriptor2;
// compute the feature discriptor
extractor->compute(img1, keypoints1, descriptor1);
extractor->compute(img2, keypoints2, descriptor2);
// 特徴点のマッチング情報を格納する変数
vector<DMatch> dmatch;
// compute matching
matcher->match(descriptor1, descriptor2, dmatch);
// Extract matching which has high matching rate
int count = dmatch.size();
int matchCount = 0;
double min_dist = DBL_MAX;
for (int i = 0; i < (int)dmatch.size(); i++) { // Acquire the minimum distance
double dist = dmatch[i].distance;
if (dist < min_dist) {
min_dist = dist;
}
}
if (min_dist < 1.0)
{
min_dist = 1.0;
}
double threshold = 30; // Fixed value is better than value times min_dist
for (int i = 0; i < (int)dmatch.size(); i++) {
if (dmatch[i].distance < threshold) {
matchCount++;
dmatchClose.push_back(dmatch[i]);
}
//std::cout << dmatch[i].distance << "\t" << min_dist << "\t" << threshold << std::endl;
}
参考:
OpenCVで画像の特徴抽出・マッチングを行う
http://whoopsidaisies.hatenablog.com/entry/2013/12/07/135810
OpenCVでのORBによる特徴点抽出とマッチング(その1)基本的な使い方
http://independence-sys.net/main/?p=2632
http://blog.goo.ne.jp/omty/e/c8a5aee50e3918a1ad669472ec25e462
サブウィンドウ
http://seesaawiki.jp/w/mikk_ni3_92/d/%c8%af%c5%b8%ca%d403
PixelBufferObject
http://seesaawiki.jp/w/mikk_ni3_92/d/PixelBufferObject
Visual Studioでデバッグ時にOpenCVのMat等の画像を表示できるプラグインが便利
http://whoopsidaisies.hatenablog.com/entry/2014/11/28/175637
0 件のコメント:
コメントを投稿