3 #include "../_cexports/c_polimago.h" 5 #include "../global.hpp" 6 #include "../string.hpp" 7 #include "predictor_base.hpp" 8 #include "classification_result.hpp" 51 if (trainingParameters_.Usage == CExports::TClassifierUsage::CU_Regression)
57 for (
int i = 0; i < numClasses; ++i)
59 Char lbl[classNameMaxLength_];
60 CVB_CALL_CAPI_CHECKED(PMGetClfClassLabelTyped(
Handle(), i, lbl));
61 classes_.push_back (lbl);
66 static CExports::TCLF LoadInternal (
const String & fileName)
68 CExports::TCLF predictor =
nullptr;
70 CVB_CALL_CAPI_CHECKED (PMOpenClfTyped(fileName.c_str(), predictor));
74 void SaveFunction (
const String &fileName)
const override 76 CVB_CALL_CAPI_CHECKED (PMSaveClfTyped(fileName.c_str(),
Handle()));
81 return thisObjectName_;
115 if (!guard.Handle ())
151 if (trainingParameters_.Usage == CExports::TClassifierUsage::CU_ClassifyOneVersusAll)
155 else if (trainingParameters_.Usage == CExports::TClassifierUsage::CU_ClassifyOneVersusOne)
172 return CVB_CALL_CAPI(PMGetOutputDimension(
Handle()));
182 return static_cast<int>(CVB_CALL_CAPI(PMGetNumClasses(
Handle())));
195 VerifyCompatibility(img, pos);
197 Char lbl[classNameMaxLength_];
198 double confidence = 0.0;
200 CVB_CALL_CAPI_CHECKED(PMClassifyTyped(
Handle(), img.
Handle(), pos.
X(), pos.
Y(), lbl, classNameMaxLength_, confidence, &confidences[0]));
215 return Classify (img, pos, confidences);
220 static const int classNameMaxLength_ = 256;
221 const std::string thisObjectName_ =
"Polimago Classification Predictor";
int NumClasses() const
Number of classes a classification predictor has been trained for.
Definition: classification_predictor.hpp:180
int OutputDimension() const
Dimension of results generated by this predictor.
Definition: classification_predictor.hpp:170
Thorough classification, that tests all possible pairs of classes (which yields potentially better re...
void * Handle() const noexcept
Classic API Polimago handle.
Definition: predictor_base.hpp:66
Predictor to classify patterns with.
Definition: classification_predictor.hpp:44
ClassificationResult Classify(const Image &img, Point2D< int > pos, std::vector< double > &confidences)
Classify a location inside an image.
Definition: classification_predictor.hpp:193
Root namespace for the Image Manager interface.
Definition: version.hpp:11
The Common Vision Blox image.
Definition: decl_image.hpp:44
ClassificationResult Classify(const Image &img, Point2D< int > pos)
Classify a location inside an image.
Definition: classification_predictor.hpp:212
T Y() const noexcept
Gets the y-component of the point.
Definition: point_2d.hpp:106
ClassificationType Classification() const
The classification type for which this classifier has been generated.
Definition: classification_predictor.hpp:149
Quick classification, that tests versus all classes simultaneously (but potentially at the cost of re...
Base class for Polimago predictors.
Definition: predictor_base.hpp:283
char Char
Character type for wide characters or unicode characters.
Definition: string.hpp:59
Polimago classification result container.
Definition: classification_result.hpp:19
std::vector< String > Classes() const
Class labels available in this predictor.
Definition: classification_predictor.hpp:139
static std::unique_ptr< ClassificationPredictor > FromHandle(ReleaseObjectGuard &&guard)
Creates predictor from a classic API handle.
Definition: classification_predictor.hpp:113
void * Handle() const noexcept
Classic API image handle.
Definition: decl_image.hpp:223
T X() const noexcept
Gets the x-component of the point.
Definition: point_2d.hpp:86
The enum element indicating undefined state.
ClassificationPredictor(const String &fileName)
Load a saved Polimago classification predictor from a file.
Definition: classification_predictor.hpp:90
static std::unique_ptr< ClassificationPredictor > Load(const String &fileName)
Load a saved predictor from a file.
Definition: classification_predictor.hpp:128
ClassificationType
Determine the classification type to be carried out.
Definition: classification_predictor.hpp:31