void ClassifyImage(Preprocessor &preprocessor, ChessClassifier &classifier, string imageFile, bool showWindow = true, bool showBinarization = false) { IplImage* image = cvLoadImage(imageFile.c_str()); if(showWindow) { cvNamedWindow("Orignal", CV_WINDOW_AUTOSIZE); cvShowImage("Orignal", image); } std::vector<IplImage*>* result = preprocessor.ExtractChess(image); if(showBinarization) { cvNamedWindow("Image1", CV_WINDOW_AUTOSIZE); cvNamedWindow("Image2", CV_WINDOW_AUTOSIZE); cvShowImage("Image1", result->at(0)); cvShowImage("Image2", result->at(1)); } string label1 = classifier.classify(result->at(0)); string label2 = classifier.classify(result->at(1)); std::cout << "Classify Results: " << label1 << " vs " << label2 << endl; if(showWindow || showBinarization) cvWaitKey(0); cvReleaseImage(&result->at(0)); cvReleaseImage(&result->at(1)); result->clear(); cvReleaseImage(&image); if(showWindow || showBinarization) cvDestroyAllWindows(); }