Надеюсь, это кому-нибудь поможет, вот как я это выяснил, я использую расстояние Бхаттачарьи, следовательно, чем больше значение, тем меньше совпадение.Есть и другие метрики, но я нашел B-расстояние лучше всего для моих нужд.
public double pghMatchShape(Contour<Point> shape1, Contour<Point> shape2)
{
DenseHistogram hist1 = new DenseHistogram(
new int[2] { 8, 8 },
new RangeF[2] { new RangeF(-180, 180), new RangeF(100, 100) });
DenseHistogram hist2 = new DenseHistogram(
new int[2] { 8, 8 },
new RangeF[2] { new RangeF(-180, 180), new RangeF(100, 100) });
CvInvoke.cvCalcPGH(shape1, hist1.Ptr);
CvInvoke.cvCalcPGH(shape2, hist2.Ptr);
CvInvoke.cvNormalizeHist(hist1.Ptr, 100.0);
CvInvoke.cvNormalizeHist(hist2.Ptr, 100.0);
double corr = CvInvoke.cvCompareHist(hist1, hist2, HISTOGRAM_COMP_METHOD.CV_COMP_BHATTACHARYYA);
return corr;
}