OpenCV HOGDescriptor OCR

OpenCV HOGDescriptor OCR

本文关键字:OCR HOGDescriptor OpenCV      更新时间:2023-10-16

我正在将 digits.py 转换为OpenCV的c ++示例。 Digits.py 位于python2 samples文件夹下。 它是一个使用 SVM 识别字符的应用程序。

在预处理步骤中,计算HOG(梯度直方图(。 为了使用C++执行此操作,使用 cv::HOGDescriptor::compute(( 获取每个图像箱的 HOG 值会更方便。

https://github.com/Itseez/opencv/blob/5f590ebed084a5002c9013e11c519dcb139d47e9/samples/python2/digits.py

126路。

在python中,他们使用Hellinger内核来改善样本辨别。但是,我看不到这种情况发生在 HOG 中.cpp在 compute(( 下。

https://github.com/Itseez/opencv/blob/5f590ebed084a5002c9013e11c519dcb139d47e9/modules/objdetect/src/hog.cpp

我们如何将其应用于从 cv::HOGDescriptor.compute 恢复的 cv::Mat ?

为什么不尝试与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