コード例 #1
0
    ResultPtr Recognize(PointVector& points, TemplateVector& templates)
	{
		Resample(points, NumPoints);
		RotateToZero(points);
		ScaleToSquare(points, SquareSize);
		TranslateToOrigin(points);

		double b = DBL_MAX;
		int index = 0;
		for (size_t i = 0; i < templates.size(); ++i)
		{
			double d = DistanceAtBestAngle(points, templates[i], -AngleRange, +AngleRange, AnglePrecision);
			if (d < b)
			{
				b = d;
				index = i;
			}
		}
		double score = 1.0 - (b / HalfDiagonal);
		return ResultPtr(new Result(templates[index]->Name, score));
	};
コード例 #2
0
ResultPtr NullFactory::createResult() const {
    return ResultPtr(new NullResult());
}