diff --git a/Modules/Applications/AppClassification/app/otbTrainVectorClassifier.cxx b/Modules/Applications/AppClassification/app/otbTrainVectorClassifier.cxx index 2d867ec80a50322e87bc7bec7805d8def751616f..7ada745f86e51536a58b3e28f03c2c221066c015 100644 --- a/Modules/Applications/AppClassification/app/otbTrainVectorClassifier.cxx +++ b/Modules/Applications/AppClassification/app/otbTrainVectorClassifier.cxx @@ -83,25 +83,34 @@ private: } else { - WriteContingencyTable(); + ContingencyTable<ClassLabelType> table = ComputeContingencyTable(predictedList,classificationListSamples.labeledListSample); + + WriteContingencyTable(table); } } - - void WriteContingencyTable() + ContingencyTable<ClassLabelType> ComputeContingencyTable(const TargetListSampleType::Pointer &predictedListSample, + const TargetListSampleType::Pointer &performanceLabeledListSample) { - // Compute contingency table typedef ContingencyTableCalculator<ClassLabelType> ContigencyTableCalcutaltorType; + ContigencyTableCalcutaltorType::Pointer contingencyTableCalculator = ContigencyTableCalcutaltorType::New(); - contingencyTableCalculator->Compute(predictedList->Begin(), predictedList->End(), - classificationListSamples.labeledListSample->Begin(), - classificationListSamples.labeledListSample->End()); - ContingencyTable<ClassLabelType> contingencyTable = contingencyTableCalculator->GetContingencyTable(); - - // Write contingency table - std::ofstream outFile; - outFile.open( this->GetParameterString( "io.confmatout" ).c_str() ); - outFile << contingencyTable.to_csv(); + contingencyTableCalculator->Compute(performanceLabeledListSample->Begin(), + performanceLabeledListSample->End(),predictedListSample->Begin(), predictedListSample->End()); + + return contingencyTableCalculator->GetContingencyTable(); + } + + + void WriteContingencyTable(const ContingencyTable<ClassLabelType> & table) + { + if(IsParameterEnabled("io.confmatout")) + { + // Write contingency table + std::ofstream outFile; + outFile.open( this->GetParameterString( "io.confmatout" ).c_str() ); + outFile << table.to_csv(); + } }