HOG特征提取之HOGDescriptor类

计算机图像处理—HOG 特征提取算法 计算机图像处理,HOG特征提取算法 阅读详情

原文转自:https://blog.youkuaiyun.com/qq_26898461/article/details/46786285

最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特征提取功能使用了HOGDescriptor这个类来进行封装,其中也有现成的行人检测的接口。

然而,无论是OpenCV官方说明文档还是各个中英文网站目前都没有这个类的使用说明,所以在这里把研究的部分心得分享一下。

      首先我们进入HOGDescriptor所在的头文件,看看它的构造函数需要哪些参数。 

[cpp] view plaincopy

  1. CV_WRAP HOGDescriptor() : winSize(64,128), blockSize(16,16), blockStride(8,8),  
  2.     cellSize(8,8), nbins(9), derivAperture(1), winSigma(-1),  
  3.     histogramNormType(HOGDescriptor::L2Hys), L2HysThreshold(0.2), gammaCorrection(true),   
  4.     nlevels(HOGDescriptor::DEFAULT_NLEVELS)  
  5. {}  

 

[cpp] view plaincopy

  1. CV_WRAP HOGDescriptor(Size _winSize, Size _blockSize, Size _blockStride,  
  2.               Size _cellSize, int _nbins, int _derivAperture=1, double _winSigma=-1,  
  3.               int _histogramNormType=HOGDescriptor::L2Hys,  
  4.               double _L2HysThreshold=0.2, bool _gammaCorrection=false,  
  5.               int _nlevels=HOGDescriptor::DEFAULT_NLEVELS)  
  6. : winSize(_winSize), blockSize(_blockSize), blockStride(_blockStride), cellSize(_cellSize),  
  7. nbins(_nbins), derivAperture(_derivAperture), winSigma(_winSigma),  
  8. histogramNormType(_histogramNormType), L2HysThreshold(_L2HysThreshold),  
  9. gammaCorrection(_gammaCorrection), nlevels(_nlevels)  
  10. {}  

 

[cpp] view plaincopy

  1. CV_WRAP HOGDescriptor(const String& filename)  
  2. {  
  3.     load(filename);  
  4. }  

 

[cpp] view plaincopy

  1. HOGDescriptor(const HOGDescriptor& d)  
  2. {  
  3.     d.copyTo(*this);  
  4. }  


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

      下面我们就把注意力放在前面的构造函数的参数上面吧,这里有几个重要的参数要研究下:winSize(64,128), blockSize(16,16), blockStride(8,8), cellSize(8,8), nbins(9)。上面这些都是HOGDescriptor的成员变量,括号里的数值是它们的默认值,它们反应了HOG描述子的参数。这里做了几个示意图来表示它们的含义。

      窗口大小 winSize

      块大小 blockSize

      胞元大小 cellSize

      梯度方向数 nbins

      nBins表示在一个胞元(cell)中统计梯度的方向数目,例如nBins=9时,在一个胞元内统计9个方向的梯度直方图,每个方向为180/9=20度。

      HOG描述子维度

      在确定了上述的参数后,我们就可以计算出一个HOG描述子的维度了。OpenCV中的HOG源代码是按照下面的式子计算出描述子的维度的。 

[cpp] view plaincopy

  1. size_t HOGDescriptor::getDescriptorSize() const  
  2. {  
  3.     CV_Assert(blockSize.width % cellSize.width == 0 &&  
  4.         blockSize.height % cellSize.height == 0);  
  5.     CV_Assert((winSize.width - blockSize.width) % blockStride.width == 0 &&  
  6.         (winSize.height - blockSize.height) % blockStride.height == 0 );  
  7.     return (size_t)nbins*  
  8.         (blockSize.width/cellSize.width)*  
  9.         (blockSize.height/cellSize.height)*  
  10.         ((winSize.width - blockSize.width)/blockStride.width + 1)*  
  11.         ((winSize.height - blockSize.height)/blockStride.height + 1);  
  12. }  


参考文献

      OpenCV中的HOG算法来源于Histograms of Oriented Gradients for Human Detection, CVPR 2005。详细的算法可以参考这个文章。

计算机视觉之HOG 特征提取算法 计算机视觉之HOG提取算法 阅读详情

相关推荐

opencv中的 HOGDescriptor 类

其定义在  object.hpp中找到的: struct CV_EXPORTS_W HOGDescriptor { public: enum { L2Hys=0 }; enum { DEFAULT_NLEVELS=64 }; CV_WRAP HOGDescriptor() : winSize(64,128), blockSize(16,16), blockS

2万+

OpenCV HOGDescriptor 参数图解

最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特征提取功能使用了HOGDescriptor这个类来进行封装,其中也有现成的行人检测的接口。然而,无论是OpenCV官方说明文档还是各个中英文网站目前都没有这个类的使用说明,所以在这里把研究的部分心得分享一下。       首先我们进入HOGDescriptor所在的头文件,看看它的构造函数

浮城大亨的专栏 5902

机器学习 之 Hog特征

Hog特征综述背景方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。它是一种能够很好地描述图像局部纹理或边缘的方向密度分布的一种特征。Hog特征结合 SVM分类器用于行人检测具有很好效果。两个概念像素点梯度与梯度方向假设图像中像素点(x,y)的

苏的专栏 2065

OpenCV 中的 HOGDescriptor

HOG 特征是深度学习兴起之前非常重要的一种特征。在早期,OpenCV 中的跟踪算法并不支持 HOG 特征,而检测模块中 HOGDescriptor 是一维的。后来,TrackerCSRT 的加入带来了 HOG 特征。然而,Object Detection 和 Deformable Part-based Models 共存令人十分困惑。二者的区别是什么?两个模块均包含 HOG 特征且 Tracke...

yiran103的专栏 2659

HOG-descriptor:在matlab中实现HOG(梯度直方图)特征提取

HOG描述符 在matlab中实现HOG(梯度直方图)特征提取。 此源代码最初来自[1] 我进行了一些更改,以便您可以直接运行hogtest.m进行测试。 HOG描述符的详细说明也可以在以下参考文献中找到。 [2] ; [3] 。

K8S 1.28.2 + Calico 3.27.3 保姆级安装避坑指南:解决节点NotReady问题

本文提供了一份详细的Kubernetes 1.28.2与Calico 3.27.3集群部署指南,重点解决节点NotReady这一常见问题。通过版本兼容性分析、精细化环境配置、kubeadm初始化参数详解及Calico Operator部署,手把手指导用户避开网络插件配置陷阱,确保集群从NotReady状态恢复健康并稳定运行。

weixin_28835583的博客 394

opencv中HOGDescriptor()理解

python中opencv.HOGDescriptor()是一个类,其包含了许多函数,包括以下函数: def checkDetectorSize(self): def compute(self, img, winStride=None, padding=None, locations=None) def computeGradient(self, img, grad, angleOfs, padd...

qq_44906799的博客 1554

宝塔面板添加站点及运营商SSL免费证书的申请与使用

本文详细介绍在宝塔面板下如何正确添加站点、配置站点,及在运营商如何申请免费SSL证书,将其配置到宝塔站点里。 给你的网站加一把锁,教你免费SSL证书申请,配置到自己的网站中。 环境:Ubuntu server 18 工具:宝塔控制面板 平台:阿里云 Web服务器:Nginx 宝塔:https://www.bt.cn/ 阿里云:https://www.aliyun.com/ 腾讯云:https://cloud.tencent.com/ 要求: 1.宝塔控制面板搭建完毕。 2掌握域名解析的原理。 3.了解ht

贺兰山长老 5060

HOGDescriptor 参数解释 OpenCV

参考文档: http://blog.youkuaiyun.com/raodotcong/article/details/6239431 http://blog.youkuaiyun.com/timidsmile/article/details/9314963 最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特征提取功能使用了HOGDescriptor这个类来

cloudspotting的博客 630

使用 Simulink 实现基于相控阵雷达的波束形成技术

摘要:本文详细介绍了利用MATLAB Simulink和Phased Array System工具箱实现相控阵雷达波束形成的完整流程。主要内容包括:1)创建Simulink模型;2)设计天线阵列参数;3)信号生成模块配置;4)波束形成算法实现;5)结果可视化方法;6)仿真调试与优化;7)代码导出与部署。通过分步指导,读者可以掌握从理论到实践的完整开发流程,包括关键参数设置和算法实现示例。该方案适用于军事、气象等领域的雷达系统开发,并支持后续嵌入式和智能算法集成。

xiaoheshang_123的博客 182

【STM32实物】基于STM32设计的智能仓储管理系统

近年来,随着我国仓储发展的和药品需求的不断增多,许多医院都采用药物仓储管理系统。我国的药物仓储产业已经有了长足的发展,仓库的规模不断变大,对仓储的要求也不断增高,药物的存储,识别以及对仓储环境条件的要求成为仓储的重要决策,他们可以根据不同的特点在不同场景中使用。本文详细介绍了一个基于单片机技术的智能仓储管理系统的设计与实现,这个系统可谓是集射频识别(RFID)技术和环境监测传感器于一身,旨在提高仓储操作的自动化和精确度。

嵌入式阿齐Archie 1万+

Opencv中HOG+SVM进行行人检测

一.基本函数介绍: 1.HOG特征提取:cv::HOGDescriptor类 CV_WRAP HOGDescriptor() :        winSize(64,128),                             // detect window        blockSize(16,16),                            // block 大

tangwei2014的专栏 3012

AI翻译工具自动翻译日语视频生成srt中文字幕,支持离线轻松生成任意日语视频字幕!可选择支持显卡模式和cpu模式低显存也能用

【AI离线字幕神器:日语视频一键转中文字幕】推荐一款基于Faster-Whisper的本地化字幕工具,可离线生成日语视频的中文字幕(.srt格式),支持CPU/GPU加速处理。实测1小时视频最快4-5分钟完成翻译,无需联网保护隐私。操作简单只需拖拽文件,支持批量处理音频(mp3/wav)和视频(mp4/mkv)文件,还能自定义输出格式和参数调整。特别适合需要观看无字幕日语资料的用户,堪称技术宅必备神器。下载地址附后,包含详细使用教程和参数配置说明。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

HOG特征检测的原理及opencv API调用

查看了一些关于HOG特征检测的文章,觉得Histogram of Oriented Gradients这一篇文章讲的比较清楚。整理如下。 1.预处理 用于计算HOG特征的图像一般都是选择大小为64x128像素大小。 在opencv中可以直接调用resize()来完成,得到src。当然也有先裁剪在resize()的操作方式。这里也可以采用gamma correction对src进行处理

生命在于折腾! 7368

如何使用CPU-Z获取内存条频率信息(编程)

当我们需要获取计算机内存条的频率信息时,可以利用CPU-Z这个工具来实现。CPU-Z是一款专门用于获取计算机硬件信息的工具,它提供了API接口,我们可以通过编程的方式来获取内存条频率信息。你可以从CPU-Z官方网站下载适用于你的操作系统的CPU-Z程序,并从安装目录中找到。函数,我们可以初始化CPU-Z,如果返回值不为0,则表示初始化失败。函数来获取内存条频率信息,如果返回值小于等于0,则表示获取失败。函数来初始化CPU-Z并获取内存条频率信息。最后,我们将获取到的内存条频率信息打印输出,并使用。

ByteProwl的博客 460

备考路上的学习笔记:我的软考高级架构师复盘与更新计划

本专栏基于作者备考软考高级系统架构设计师的真实经验,分为考前突击、基础夯实、核心突破、案例实战和论文通关五大模块。内容涵盖计算机体系结构、操作系统、数据库等核心知识,提供案例解析和论文范文。作者承诺持续更新考纲内容、真题复盘及互动答疑,旨在帮助考生系统备考,将个人踩坑经验转化为实用指南,陪伴考生共同完成从知识碎片到体系构建的蜕变历程。

qq837993702的博客 2295

OpenCV:OpenCV目标检测Hog+SWindow源代码分析

参考文章:OpenCV中的HOG+SVM物体分类 此文主要描述出HOG分类的调用堆栈。 使用OpenCV作图像检测, 使用HOG检测过程,其中一部分源代码如下: 1.HOG 检测底层栈的检测计算代码: 貌似在计算过程中仅使用滑窗方法? void HOGDescriptor::dete...

alppkk4545的博客 238

【技能】OpenClaw Skill 操作钉钉(原理+20个实例)

OpenClaw Skill是遵循AgentSkills规范的自动化逻辑单元,用于指导AI助理调用钉钉工具。每个Skill包含SKILL.md文件,定义触发条件、执行逻辑和接口调用方式。Skill通过钉钉Connector插件实现API鉴权和请求转发,需配置ClientID/Secret等凭证。Skill加载路径包括工作目录、本地目录和内置目录,优先级由高到低。使用前需安装必备插件并配置钉钉权限,通过openclaw.json管理Skill开关和环境变量。ClawHub作为官方技能仓库支持Skill的安装和

海兰 1223

HOG:从理论到OpenCV实践

(转载请注明出处:http://blog.youkuaiyun.com/zhazhiqiang/ 未经允许请勿用于商业用途) 一、理论 1、HOG特征描述子的定义:     locally normalised histogram of gradient orientation in dense overlapping grids,即局部归一化的梯度方向直方图,是一种对图像局部重叠区

childboy的博客 467

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

opencv_C++ HOG 特征检测示例

#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; void test() { Mat srcImage = imread("xingren.jpg"); Mat grayImage, dstImage; cvtColor(srcI

duanbin的博客 1331

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【OpenCV】100 HOG特征与行人检测

100 代码 实验结果 解释 优点 所有内容均来源于贾志刚老师的知识星球——OpenCV研习社,本文为个人整理学习,已获得贾老师授权,有兴趣、有能力的可以加入贾老师的知识星球进行深入学习。 ...

刘小胖的博客 255

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OpenCV的HoG特征点详解

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!                HOG即histogr

ytffhew的博客 870

opencv hog函数调用

转载自 xmucyp最终编辑 xmucyp I'm calling hog->compute() with default HOG parameter settings (hog.winSize.width = 64; hog.winSize.height = 128; hog.

一蓑烟雨的专栏 2991
上一篇: 泰勒公式推导及多元泰勒展开式
下一篇: opencv模板匹配(matchTemplate)做定位
LiBin1103
博客等级 码龄9年 38粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值