Example #1
0
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();
}