API:

HOGDescriptor(Size _winSize, ---:窗口大小,即检测的范围大小,前面的64*128
        Size _blockSize,--- 前面的2*2的cell,即cell的数量,这里要填像素值Size(16,16)
        Size _blockStride,---每次block移动的步长,以像素计,为一个cell像素块大小
             Size _cellSize, ---cell的大小,前面的8*8
        int _nbins, ----直方图的组数
        int _derivAperture=1, --梯度计算的参数
        double _winSigma=-1, --梯度计算的参数
             int _histogramNormType=HOGDescriptor::L2Hys,---归一化的方法
              double _L2HysThreshold=0.2,
        bool _gammaCorrection=false, ---是否要伽马校正
               int _nlevels=HOGDescriptor::DEFAULT_NLEVELS,
         bool _signedGradient=false)
 #include <opencv2/opencv.hpp>
//#include <opencv2/xfeatures2d.hpp>
#include <iostream> using namespace cv;
//using namespace cv::xfeatures2d;
using namespace std; int main(int argc, char** argv) {
Mat src = imread("test.jpg");
if (src.empty()) {
printf("could not load image...\n");
return -;
}
namedWindow("input image", CV_WINDOW_AUTOSIZE);
imshow("input image", src); Mat dst, dst_gray;
resize(src,dst,Size(,));// 改变大小 cvtColor(dst,dst_gray,COLOR_BGR2GRAY); HOGDescriptor detector(Size(, ), Size(, ), Size(, ), Size(, ),);
vector<float> descriptors;//直方图向量
vector<Point>locations;
detector.compute(dst_gray, descriptors,Size(,),Size(,),locations);
printf("number of HOG descriptors :%d", descriptors.size()); waitKey();
return ;
}

使用OpenCV已经训练好的模型实现行人检测

 #include <opencv2/opencv.hpp>
#include <iostream> using namespace cv;
using namespace std; int main(int argc, char** argv) {
Mat src = imread("行人.jpg");
if (src.empty()) {
printf("could not load image...\n");
return -;
}
namedWindow("input image", CV_WINDOW_AUTOSIZE);
imshow("input image", src); //使用opencv已经训练好的模型,实现行人检测
HOGDescriptor hog= HOGDescriptor();
hog.setSVMDetector(hog.getDefaultPeopleDetector()); vector<Rect> foundLocations;
hog.detectMultiScale(src, foundLocations,,Size(,),Size(,),1.05,);//在多尺度上寻找
for (size_t t = ; t < foundLocations.size(); t++) {
rectangle(src, foundLocations[t],Scalar(,,),,,);
} namedWindow("HOG行人检测",CV_WINDOW_AUTOSIZE);
imshow("HOG行人检测",src); waitKey();
return ;
}

OpenCV——HOG特征检测的更多相关文章

  1. Opencv HOG特征检测

    HOGDescriptor hogDescriptor = HOGDescriptor(); hogDescriptor.setSVMDetector(hogDescriptor.getDefault ...

  2. OpenCV4.1.0实践(2) - Dlib+OpenCV人脸特征检测

    待更! 参考: python dlib opencv 人脸68点特征检测

  3. OpenCV——SIFT特征检测与匹配

    SIFT特征和SURF特征比较 比较项目 SIFT SURF 尺度空间极值检测 使用高斯滤波器,根据不同尺度的高斯差(DOG)图像寻找局部极值 使用方形滤波器,利用海森矩阵的行列式值检测极值,并利用积 ...

  4. OpenCV 之 特征检测

    特征,也称 兴趣点 或 关键点,如下:蓝框内区域平坦,无特征:黑框内有"边缘",红框内有"角点",后二者都可视为"特征" 角点作为一种特征, ...

  5. 学习OpenCV——HOG+SVM

    #include "cv.h" #include "highgui.h" #include "stdafx.h" #include < ...

  6. opencv图像特征检测之斑点检测

    前面说过,图像特征点检测包括角点和斑点,今天来说说斑点,斑点是指二维图像中和周围颜色有颜色差异和灰度差异的区域,因为斑点代表的是一个区域,所以其相对于单纯的角点,具有更好的稳定性和更好的抗干扰能力. ...

  7. OpenCV——Brisk特征检测、匹配与对象查找

    检测并绘制特征点: #include <opencv2/opencv.hpp> #include <opencv2/xfeatures2d.hpp> #include < ...

  8. OpenCV——ORB特征检测与匹配

    原文链接:https://mp.weixin.qq.com/s/S4b1OGjRWX1kktefyHAo8A #include <opencv2/opencv.hpp> #include ...

  9. OpenCV——SURF特征检测、匹配与对象查找

    SURF原理详解:https://wenku.baidu.com/view/2f1e4d8ef705cc1754270945.html SURF算法工作原理 选择图像中的POI(Points of i ...

随机推荐

  1. Map集合框架的练习

    Map是一个很重要的集合框架,它以键值对的方式存储,下面是一个Map集合的小练习,使用了keySet的取出方法. 取出字符串的每一个字符,记录每一个字母出现的次数.使用Map集合框架. package ...

  2. 使用Java对字符串进行升序排序

    Java对字符串的很多API和功能是JavaWeb能广泛发展的基础,下面是一道经典的字符串操作题,需要边查JAVASE的API对每个步骤进行操作. 题目:给一个字符串,"34 12 -8 0 ...

  3. 模版方法模式(Template Method)

    1.概念 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板.它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行.这种类型的设计模式属于行为型 ...

  4. Android使用AOP

    这里不讲aop的概念,网上资料很多,这里只讲如何配置aop和自定义plugin. 1.使用场景 在android中,有些业务是公共的,例如:登录判断.获取权限.网络判断等一些公用的业务逻辑,这些都可以 ...

  5. Java线程分析

    一.Java线程的生命周期中,存在几种状态.在Thread类里有一个枚举类型State,定义了线程的几种状态 public enum State { NEW, RUNNABLE, BLOCKED, W ...

  6. php解释命令行的参数

    php cli模式下,可以用$argc, $argv来读取所有的参数以及个数,如: ghostwu@ghostwu:~/php/php1/1$ cat go1 #!/usr/bin/php <? ...

  7. 设计模式(20)--State(状态模式)--行为型

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.模式定义: 状态模式,又称状态对象模式(Pattern of Objects for States),状态模式 ...

  8. ubutu强制关闭应用程序的方法

    1.打开终端,输入命令 top 2.查看应用程序PID号,比如是8080 3.然后终端输入 kill 8080 ,行了

  9. CVE-2018-18820 icecast 栈缓冲区越界写漏洞分析

    前言 icecast 是一款开源的流媒体服务器 , 当服务器配置了 url 认证时,服务器在处理 HTTP 头部字段时错误的使用了 snprintf 导致栈缓冲区的越界写漏洞( CVE-2018-18 ...

  10. Android Design Support Library(二)用NavigationView实现抽屉菜单界面

    NavigationView在MD设计中非常重要,之前Google也提出了使用DrawerLayout来实现导航抽屉.这次,在Android Design Support Library中,Googl ...