Beispiel #1
0
void testAll(){
    std::ofstream out("log.txt");
    auto cerrbuf = std::cerr.rdbuf(out.rdbuf());
    auto clogbuf = std::clog.rdbuf(out.rdbuf());
    if(testTargets())
        std::clog << "targets ok\n########################\n"<< std::endl;
    else
        std::cerr << "targets failed\n########################\n" << std::endl;

    if(testPlanets())
        std::clog << "planets ok\n########################\n"<< std::endl;
    else
        std::cerr << "planets failed\n########################\n" << std::endl;

    if(testSpaceships())
        std::clog << "spaceships ok\n########################\n"<< std::endl;
    else
        std::cerr << "spaceships failed\n########################\n" << std::endl;
        
    if(testDeathStar())
        std::clog << "deathstar ok\n########################\n"<< std::endl;
    else
        std::cerr << "deathstar failed\n########################\n" << std::endl;
        
    std::clog.rdbuf(clogbuf);
    std::cerr.rdbuf(cerrbuf);
}
double QFoldTest(const cv::Mat &features, const cv::Mat &targets,
             size_t folds) {
  double error = 0;
  size_t foldSize = features.rows / folds;
  for(size_t fold = 0; fold < folds; ++fold) {
    cv::Mat learnFeatures(features.rows - foldSize,
                          features.cols, CV_32FC1);
    cv::Mat learnTargets(targets.rows - foldSize, targets.cols, CV_32SC1);
    if(fold > 0) {
      CopyROI(features, cv::Range(0, fold * foldSize),
              cv::Range(0, features.cols),
              &learnFeatures, cv::Range(0, fold * foldSize),
              cv::Range(0, learnFeatures.cols));
      CopyROI(targets, cv::Range(0, fold * foldSize),
              cv::Range(0, targets.cols),
              &learnTargets, cv::Range(0, fold * foldSize),
              cv::Range(0, learnTargets.cols));

    }
    if(fold < folds) {
      CopyROI(features, cv::Range((fold + 1) * foldSize, features.rows), 
              cv::Range(0, features.cols),
              &learnFeatures, cv::Range(fold * foldSize, learnFeatures.rows), 
              cv::Range(0, learnFeatures.cols));
      CopyROI(targets, cv::Range((fold + 1) * foldSize, targets.rows),
              cv::Range(0, targets.cols),
              &learnTargets, cv::Range(fold * foldSize, learnTargets.rows),
              cv::Range(0, learnTargets.cols));
    }
    
    cv::Mat testFeatures(foldSize, features.cols, CV_32FC1);
    testFeatures = features(cv::Range(fold * foldSize, (fold + 1) * foldSize),
                            cv::Range::all());
    cv::Mat testTargets(foldSize, targets.cols, CV_32SC1);
    testTargets = targets(cv::Range(fold * foldSize, (fold + 1) * foldSize),
                          cv::Range::all());
    CvSVM svm;
    // Learn(learnFeatures, learnTargets, &svm);
    Learn(learnFeatures, learnTargets, &svm);
    error += Test(svm, testFeatures, testTargets);
  }
  return error / folds;
}
Beispiel #3
0
/*
 * Sets the target row and column 
 */
void setTargetMove(int tRow, int tCol)	{

	getQueue(NULL)->targetRow = tRow;
	getQueue(NULL)->targetCol = tCol;
	testTargets();
}