mv_machine_learning: convert ImageClassification class into template class
[platform/core/api/mediavision.git] / mv_machine_learning / image_classification / src / image_classification_default.cpp
index 37a1873..59e8f33 100644 (file)
@@ -30,23 +30,24 @@ namespace mediavision
 {
 namespace machine_learning
 {
-ImageClassificationDefault::ImageClassificationDefault(shared_ptr<MachineLearningConfig> config)
-               : ImageClassification(config), _result()
+template<typename T>
+ImageClassificationDefault<T>::ImageClassificationDefault(shared_ptr<MachineLearningConfig> config)
+               : ImageClassification<T>(config), _result()
 {}
 
-ImageClassificationDefault::~ImageClassificationDefault()
+template<typename T> ImageClassificationDefault<T>::~ImageClassificationDefault()
 {}
 
-ImageClassificationResult &ImageClassificationDefault::result()
+template<typename T> ImageClassificationResult &ImageClassificationDefault<T>::result()
 {
        vector<string> names;
 
-       ImageClassification::getOutputNames(names);
+       ImageClassification<T>::getOutputNames(names);
 
        vector<float> output_vec;
 
        // In case of image classification model, only one output tensor is used.
-       ImageClassification::getOutpuTensor(names[0], output_vec);
+       ImageClassification<T>::getOutpuTensor(names[0], output_vec);
 
        auto metaInfo = _config->getOutputMetaMap().at(names[0]);
        auto decodingScore = static_pointer_cast<DecodingScore>(metaInfo->decodingTypeMap.at(DecodingType::SCORE));
@@ -62,5 +63,8 @@ ImageClassificationResult &ImageClassificationDefault::result()
        return _result;
 }
 
+template class ImageClassificationDefault<unsigned char>;
+template class ImageClassificationDefault<float>;
+
 }
 }