我正在将digits.py转换为来自OpenCV的c ++示例。 Digits.py位于python2 samples文件夹下。它是一个使用SVM识别字符的应用程序。
在预处理步骤期间,HOG(计算梯度的直方图)。为了用C ++做到这一点,使用cv :: HOGDescriptor :: compute()来获取每个图像bin的HOG值更方便。
第126行。
在python中,他们使用Hellinger内核来改善样本辨别力。但是,我无法在compute()下的HOG.cpp中看到这种情况。
我们如何将它应用于从cv :: HOGDescriptor.compute恢复的cv :: Mat?
答案 0 :(得分:0)
为什么不尝试使用python示例中的相同内容?
Mat img = ...
Mat descr;
hog.compute(img, descr, ...);
float eps = 1e-7f;
descr /= sum(descr)[0] + eps; // same as: normalize(descr,descr,1,eps,NORM_L1);
sqrt(descr,descr);
descr /= norm(descr) + eps;
// ... feed to svm