Example #1
0
void View::trainFaceRecognition() {
    TrainingInfo trainingInfo = FaceRecognitionTrainingDialog::getTrainingInfo((QWidget*)this);
    if(trainingInfo == TrainingInfo::empty()) {
        _ui.tlBttn_FaceRecognition->setChecked(false);
        return;
    }
    showStatusMessage("Reading face recognition trainging file...");
    _controller->setFaceRecognitionTrainingName(trainingInfo.name());

    TrainingData trainingData;
    try {
        trainingData = readImageClassMapFile(trainingInfo.classImageMapFileName());
        validateTrainingData(trainingData);

        showStatusMessage("Training face recognition...");
        _controller->trainFaceRecognition(trainingData);
        trainingData.release();
        saveFaceRecognitionMethodState(trainingInfo.name());

        addLoadFaceRecognitionMethodStateMenuItem(trainingInfo.name());
        clearStatusMessage();
    } catch(framework::BaseException& e) {
        trainingData.release();
        clearStatusMessage();
        _ui.tlBttn_FaceRecognition->setChecked(false);
        throw e;
    }
}