0049-利用OpenCV的HOG类进行行人区域的检测

一个物体,不管远近以及角度如何,我们人都能判断为同一物体,因为我们人脑是根据物体的特征来判断是不是同一物体的,计算机在处理图像时,我们也希望具备这样的能力,所以需要对图像进行特征提取

HOG(Histogram of Oriented Gridients的简写)特征检测算法,最早是由法国研究员Dalal等在CVPR-2005上提出来的,一种解决人体目标检测的图像描述子,是一种用于表征图像局部梯度方向和梯度强度分布特性的描述符。其主要思想是:在边缘具体位置未知的情况下,边缘方向的分布也可以很好的表示行人目标的外形轮廓。

关于此算法的详细原理请大家自行查阅相关资料。

下面介绍下这个类当中的detectMultiScale成员函数
原型如下
void detectMultiScale(InputArray img, CV_OUT std::vector<Rect>& foundLocations,double hitThreshold = 0, Size winStride = Size(),Size padding = Size(), double scale = 1.05,double finalThreshold = 2.0, bool useMeanshiftGrouping = false) const;
参数意义如下
img:源图像。
foundlocations:检测出的物体的边缘。
hit_threshold:阀值,特征向量和SVM划分超平面的距离,大于这个值的才作为目标返回。
win_stride:窗口步长,必须是block步长的整数倍。
padding:图片边缘补齐参数,gpu版本必须是(0,0)。
scale:检测窗口增长参数。
finalThreshold:检测结果聚类参数
useMeanshiftGrouping:聚类方式选择的参数
末尾的const表示此成员函数不改变类中的成员变量。

示例代码如下
代码请加Q2034196302获取
代码请加Q2034196302获取
代码请加Q2034196302获取

代码运行结果如下


 

猜你喜欢

转载自blog.csdn.net/opencv_source/article/details/83787596
今日推荐