OpenCV3中 HOGDescriptor 参数详解

xiaoxiao2021-02-28  31

最近在做数字识别,需要用一些特征检测的方法,所以研究了一下hog特征以及opencv3中的实现。 首先我们进入HOGDescriptor所在的头文件“objdetect.hpp”,擦布所在360行左右位置,看看它的构造函数需要哪些参数。

CV_WRAP HOGDescriptor() : winSize(64,128), blockSize(16,16), blockStride(8,8), cellSize(8,8), nbins(9), derivAperture(1), winSigma(-1), histogramNormType(HOGDescriptor::L2Hys), L2HysThreshold(0.2), gammaCorrection(true), nlevels(HOGDescriptor::DEFAULT_NLEVELS) {} CV_WRAP HOGDescriptor(Size _winSize, Size _blockSize, Size _blockStride, Size _cellSize, int _nbins, int _derivAperture=1, double _winSigma=-1, int _histogramNormType=HOGDescriptor::L2Hys, double _L2HysThreshold=0.2, bool _gammaCorrection=false, int _nlevels=HOGDescriptor::DEFAULT_NLEVELS) : winSize(_winSize), blockSize(_blockSize), blockStride(_blockStride), cellSize(_cellSize), nbins(_nbins), derivAperture(_derivAperture), winSigma(_winSigma), histogramNormType(_histogramNormType), L2HysThreshold(_L2HysThreshold), gammaCorrection(_gammaCorrection), nlevels(_nlevels) {} CV_WRAP HOGDescriptor(const String& filename) { load(filename); } HOGDescriptor(const HOGDescriptor& d) { d.copyTo(*this); }

我们看到HOGDescriptor一共有4个构造函数,前三个有CV_WRAP前缀,表示它们是从DLL里导出的函数,即我们在程序当中可以调用的函数;最后一个没有上述的前缀,所以我们暂时用不到,它其实就是一个拷贝构造函数。 窗口大小 winSize 块大小 blockSize 胞元大小 cellSize

梯度方向数 nbins nBins表示在一个胞元(cell)中统计梯度的方向数目,例如nBins=9时,在一个胞元内统计9个方向的梯度直方图,每个方向为180/9=20度。 HOG描述子维度 在确定了上述的参数后,我们就可以计算出一个HOG描述子的维度了。OpenCV中的HOG源代码是按照下面的式子计算出描述子的维度的。

size_t HOGDescriptor::getDescriptorSize() const { CV_Assert(blockSize.width % cellSize.width == 0 && blockSize.height % cellSize.height == 0); CV_Assert((winSize.width - blockSize.width) % blockStride.width == 0 && (winSize.height - blockSize.height) % blockStride.height == 0 ); return (size_t)nbins* (blockSize.width/cellSize.width)* (blockSize.height/cellSize.height)* ((winSize.width - blockSize.width)/blockStride.width + 1)* ((winSize.height - blockSize.height)/blockStride.height + 1); }

参考: 1、https://blog.csdn.net/qq_26898461/article/details/46786285 2、http://livezingy.com/hogdescriptor-in-opencv3-1/

翟羽嚄 认证博客专家 算法 机器学习 图像处理 我经常会分享一些智能驾驶、自动驾驶、图像识别、嵌入式linux、嵌入式音视频开发等知识,有兴趣的朋友可以关注我的头条号——翟羽镬,ID:1661013377414159,这里会分享一些整理好的且有一定价值的文章和源码。
转载请注明原文地址: https://www.6miu.com/read-1650082.html

最新回复(0)