moving algorithm type to param
This commit is contained in:
parent
5f3ee657ce
commit
dfaf75f502
@ -230,8 +230,9 @@ public:
|
|||||||
class CV_EXPORTS_W_MAP Params
|
class CV_EXPORTS_W_MAP Params
|
||||||
{
|
{
|
||||||
public:
|
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 int defaultK;
|
||||||
CV_PROP_RW bool isclassifier;
|
CV_PROP_RW bool isclassifier;
|
||||||
CV_PROP_RW int Emax; // for implementation with KDTree
|
CV_PROP_RW int Emax; // for implementation with KDTree
|
||||||
@ -243,9 +244,9 @@ public:
|
|||||||
OutputArray neighborResponses=noArray(),
|
OutputArray neighborResponses=noArray(),
|
||||||
OutputArray dist=noArray() ) const = 0;
|
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 cv {
|
||||||
namespace ml {
|
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
|
class KNearestImpl : public KNearest
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -497,9 +497,9 @@ public:
|
|||||||
Params params;
|
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);
|
return makePtr<KNearestKDTreeImpl>(p);
|
||||||
}
|
}
|
||||||
|
@ -330,7 +330,7 @@ void CV_KNearestTest::run( int /*start_from*/ )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// KNearest KDTree implementation
|
// 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->train(trainData, ml::ROW_SAMPLE, trainLabels);
|
||||||
knearestKdt->findNearest(testData, 4, bestLabels);
|
knearestKdt->findNearest(testData, 4, bestLabels);
|
||||||
if( !calcErr( bestLabels, testLabels, sizes, err, true ) )
|
if( !calcErr( bestLabels, testLabels, sizes, err, true ) )
|
||||||
|
Loading…
Reference in New Issue
Block a user