OpenCVでのcvMatchShapesの一致精度を改善する

私は cvMatchShapes()を使って2つのマーカーパターンにマッチさせようとしました。あなたが OpenCV 2.3.0 のしきい値付きIplImageで「白い塊」の数を数える最も良い方法は、ソースの画質が悪いです。

私はその関数から返された結果に満足していません。ほとんどの場合、不正な一致が返されます。どのように効果的なマッチングを行うには、この関数(またはいくつかの適切な関数)を使用する?

注:私のフォールバックの解決策は、マーカパターンをかなり大きく/はっきりと見える形状に変更することです。私の現在のマーカパターンを見るには上記のリンクをご覧ください。

編集

私はOpenCVで実装されたさまざまな特徴検出アルゴリズムのこの包括的な比較を発見しました。 "http:// computer- vision-talks.com/2011/01/compatison-of-the-opencvs-feature- detection-algorithms-2 を参照してください。それによると、FASTは良い選択と思われる。

私はOpenCVでFAST(他のSTAR/SURF/SIFT)を実装するための良いチュートリアルを共有できる人に +1を与えるでしょう。 速度のように Google 高速と考えることができません:(

6
あなたの編集では、OpenCVで利用可能な機能検出器のさまざまなテストへのリンクを投稿します。次に、特徴検出器を求めます。 OpenCVで
追加された 著者 Sam,

1 答え

Here is the FAST inventor's website. FAST stands for Features from Accelerated Segment Test. Here is a short Wikipedia entry on AST based algorithms. Also, here is a good survey of the different feature detectors currently in use today.

FAST is actually already implemented by OpenCV if you would like to use their implementation.

EDIT : Here is short example I created to show you how to use the FAST detector:

#include 
#include 
#include 
#include 
#include 

using namespace std;
using namespace cv;

int main(int argc, char* argv[])
{
    Mat far = imread("far.jpg", 0);
    Mat near = imread("near.jpg", 0);

    Ptr detector = FeatureDetector::create("FAST");

    vector farPoints;
    detector->detect(far, farPoints);

    Mat farColor;
    cvtColor(far, farColor, CV_GRAY2BGR);
    drawKeypoints(farColor, farPoints, farColor, Scalar(255, 0, 0), DrawMatchesFlags::DRAW_OVER_OUTIMG);
    imshow("farColor", farColor);
    imwrite("farPoints.jpg", farColor);

    vector nearPoints;
    detector->detect(near, nearPoints);

    Mat nearColor;
    cvtColor(near, nearColor, CV_GRAY2BGR);
    drawKeypoints(nearColor, nearPoints, nearColor, Scalar(0, 255, 0), DrawMatchesFlags::DRAW_OVER_OUTIMG);
    imshow("nearColor", nearColor);
    imwrite("nearPoints.jpg", nearColor);

    waitKey();
    return 0;
}

This code finds the follow feature points for the far and near imagery:
near image far image

ご覧のように、近くの画像にはもっと多くの機能がありますが、同じ基本構造が遠い画像で検出されたように見えます。だから、あなたはこれらを一致させることができるはずです。 descriptor_extractor_matcher.cpp をご覧ください。 。それはあなたを始めるはずです。

希望が助けてくれる!

3
追加された
これらのフィーチャ検出アルゴリズムは、 stackoverflow.com/questions/8259655/…
追加された 著者 coder9,