tempRecognizer->read(storage.root());
tempConfig.mModelType =
MEDIA_VISION_FACE_MODEL_TYPE_EIGENFACES;
- tempConfig.mNumComponents =
- (dynamic_cast<cv::face::EigenFaceRecognizer*>(tempRecognizer.get()))->getNumComponents();
- labels = (dynamic_cast<cv::face::EigenFaceRecognizer*>(tempRecognizer.get()))->getLabels();
+ cv::face::EigenFaceRecognizer* recognizer = dynamic_cast<cv::face::EigenFaceRecognizer*>(tempRecognizer.get());
+ if (recognizer != NULL) {
+ tempConfig.mNumComponents = recognizer->getNumComponents();
+ labels = recognizer->getLabels();
+ } else {
+ return MEDIA_VISION_ERROR_NOT_SUPPORTED_FORMAT;
+ }
} else if (algName == "Fisherfaces") {
tempRecognizer = cv::face::FisherFaceRecognizer::create();
storage["resizeW"] >> tempConfig.mImgWidth;
tempRecognizer->read(storage.root());
tempConfig.mModelType =
MEDIA_VISION_FACE_MODEL_TYPE_FISHERFACES;
- tempConfig.mNumComponents =
- (dynamic_cast<cv::face::FisherFaceRecognizer*>(tempRecognizer.get()))->getNumComponents();
- labels = (dynamic_cast<cv::face::FisherFaceRecognizer*>(tempRecognizer.get()))->getLabels();
+ cv::face::FisherFaceRecognizer* recognizer = dynamic_cast<cv::face::FisherFaceRecognizer*>(tempRecognizer.get());
+ if (recognizer != NULL) {
+ tempConfig.mNumComponents = recognizer->getNumComponents();
+ labels = recognizer->getLabels();
+ } else {
+ return MEDIA_VISION_ERROR_NOT_SUPPORTED_FORMAT;
+ }
} else if (algName == "LBPH") {
tempRecognizer = cv::face::LBPHFaceRecognizer::create();
tempRecognizer->read(storage.root());
- tempConfig.mModelType =
- MEDIA_VISION_FACE_MODEL_TYPE_LBPH;
- tempConfig.mGridX = (dynamic_cast<cv::face::LBPHFaceRecognizer*>(tempRecognizer.get()))->getGridX();
- tempConfig.mGridY = (dynamic_cast<cv::face::LBPHFaceRecognizer*>(tempRecognizer.get()))->getGridY();
- tempConfig.mNeighbors = (dynamic_cast<cv::face::LBPHFaceRecognizer*>(tempRecognizer.get()))->getNeighbors();
- tempConfig.mRadius = (dynamic_cast<cv::face::LBPHFaceRecognizer*>(tempRecognizer.get()))->getRadius();
- labels = (dynamic_cast<cv::face::LBPHFaceRecognizer*>(tempRecognizer.get()))->getLabels();
+ cv::face::LBPHFaceRecognizer* recognizer = dynamic_cast<cv::face::LBPHFaceRecognizer*>(tempRecognizer.get());
+ if (recognizer != NULL) {
+ tempConfig.mModelType =
+ MEDIA_VISION_FACE_MODEL_TYPE_LBPH;
+ tempConfig.mGridX = recognizer->getGridX();
+ tempConfig.mGridY = recognizer->getGridY();
+ tempConfig.mNeighbors = recognizer->getNeighbors();
+ tempConfig.mRadius = recognizer->getRadius();
+ labels = recognizer->getLabels();
+ } else {
+ return MEDIA_VISION_ERROR_NOT_SUPPORTED_FORMAT;
+ }
} else {
tempConfig = FaceRecognitionModelConfig();
LOGE("Failed to load face recognition model from file. File is in "