Commit dfaf75f5 authored by Dmitriy Anisimov's avatar Dmitriy Anisimov

moving algorithm type to param

parent 5f3ee657
......@@ -230,8 +230,9 @@ public:
class CV_EXPORTS_W_MAP Params
{
public:
Params(int defaultK=10, bool isclassifier_=true, int Emax_=INT_MAX);
Params(int algorithmType_=BRUTE_FORCE, int defaultK=10, bool isclassifier_=true, int Emax_=INT_MAX);
CV_PROP_RW int algorithmType;
CV_PROP_RW int defaultK;
CV_PROP_RW bool isclassifier;
CV_PROP_RW int Emax; // for implementation with KDTree
......@@ -243,9 +244,9 @@ public:
OutputArray neighborResponses=noArray(),
OutputArray dist=noArray() ) const = 0;
enum { DEFAULT=1, KDTREE=2 };
enum { BRUTE_FORCE=1, KDTREE=2 };
static Ptr<KNearest> create(const Params& params=Params(), int type=DEFAULT);
static Ptr<KNearest> create(const Params& params=Params());
};
/****************************************************************************************\
......
......@@ -50,14 +50,14 @@
namespace cv {
namespace ml {
KNearest::Params::Params(int k, bool isclassifier_, int Emax_)
KNearest::Params::Params(int algorithmType_, int k, bool isclassifier_, int Emax_) :
algorithmType(algorithmType_),
defaultK(k),
isclassifier(isclassifier_),
Emax(Emax_)
{
defaultK = k;
isclassifier = isclassifier_;
Emax = Emax_;
}
class KNearestImpl : public KNearest
{
public:
......@@ -497,9 +497,9 @@ public:
Params params;
};
Ptr<KNearest> KNearest::create(const Params& p, int type)
Ptr<KNearest> KNearest::create(const Params& p)
{
if (KDTREE==type)
if (KDTREE==p.algorithmType)
{
return makePtr<KNearestKDTreeImpl>(p);
}
......
......@@ -330,7 +330,7 @@ void CV_KNearestTest::run( int /*start_from*/ )
}
// KNearest KDTree implementation
Ptr<KNearest> knearestKdt = KNearest::create(ml::KNearest::Params(), ml::KNearest::KDTREE);
Ptr<KNearest> knearestKdt = KNearest::create(ml::KNearest::Params(ml::KNearest::KDTREE));
knearestKdt->train(trainData, ml::ROW_SAMPLE, trainLabels);
knearestKdt->findNearest(testData, 4, bestLabels);
if( !calcErr( bestLabels, testLabels, sizes, err, true ) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment