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. Java - TreeMap源码解析 + 红黑树

    Java提高篇(二七)-----TreeMap TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap ...

  2. php面向对象高级-魔术方法与迭代器

    1,魔术方法__set与__get, __call >这些魔术方法,将在相关的属性或者方法不存在时调用 >函数原型 .function __set( $property, $value ) ...

  3. DOM(JavaScript高程笔记)

    一.节点层次 1.Node类型 if (someNode.nodeType == 1){ // 适用于所有浏览器 alert("Node is an element."); } N ...

  4. Java 基础知识总结1

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.数据类型:  数据类型:1>.基本数据类型:1).数值型: 1}.整型类型(byte  8位   (by ...

  5. 为JavaScript正名--读你不知道的JavaScript(持续更新..)

    你不知道的JavaScript上卷 JavaScript和Java的关系就像Carnival和Car的关系一样,八竿子打不着. JavaScript易上手,但由于其本身的特殊性,相比其他语言能真正掌握 ...

  6. js-ES6学习笔记-module(2)

    1.如果想为输入的变量重新取一个名字,import命令要使用as关键字,将输入的变量重命名. import { lastName as surname } from './profile'; 2.im ...

  7. JS写的二级导航栏(利用冒泡原理)

    今天给大家分享一种用JS写的导航栏,虽然我们工作中不会使用JS来做导航栏,为了练习我们用JS来做一个JS导航栏 这种方法要比其他方法代码量少很多,但是需要对事件冒泡有一定的理解,如果需要理解冒泡可以参 ...

  8. import、export使用介绍

    import.export使用介绍 ES6提供的import.export方法, 使组件化开发模式迈向新高度.本文来介绍import.export的语法及使用方法. 根据 export 的导出方式,可 ...

  9. 关于DDL、DML和DCL的区别与理解

    2017年5月31日,天气阴.近期事情颇多,心情比较沉重. 端午刚过,早上上课,很多同学还处在端午的疲惫状态中没有回过神来,当然我也不例外.端午奔波三天,加上毕设的事情,可以说身心俱疲.状态不佳,整理 ...

  10. 搭建ReactNative时的最普遍的错误—— ":CFBundleIdentifier", Does Not Exist

    报错 ":CFBundleIdentifier", Does Not Exist 今天搭建Reactnative 报错 注意当你第一次搭建RN时,包体下载的都是最新的版本,由于现在 ...