资源简介
这是本人本科做的毕业设计,根据opencv里面人体检测的HOG代码改写,加上了完整的注释(opencv里面是没有任何注释的),并且增加了样本的训练(代码中只提供了PCA50-HOG的检测算子,如有其它需要可以自行训练),线性检测时使用线性SVM优化,高斯检测时使用PCA的降维。同时对候选区域整合代码做了简化处理。
最后感谢网上的各位好心人提供的各类资源,在毕业设计过程中给予了我很大帮助。鉴于网上仍然还有若干未解决的问题,今天把我所做的也分享给大家,希望能给还在探索ing的朋友一些启发。如果有任何问题请留言或者email。
代码片段和文件信息
#include “cppHoG.h“
#include “opencv2/highgui/highgui.hpp“
#include
#include
int iPosWindows =0; int iNegWindows=0;
//constructor
CcppHoG :: CcppHoG(Size sWinSizeSize sBlockSizeSize sBlockStrideSize sWinStrideSize sCellSizeint iBinsenGamacorrect enGammaCorstyleenBlockNormstyle enNormstylefloat fGaussSigmadouble dBlockThreshold)
{
this->sWinSize = sWinSize;
this->sBlockStride = sBlockStride;
this->sWinStride = sWinStride;
this->sBlockSize = sBlockSize;
this->sCellSize = sCellSize;
this->iBins = iBins;
this->enGammaCorstyle = enGammaCorstyle;
this->enNormstyle = enNormstyle;
m_fGaussSigma = fGaussSigma;
this->dBlockThreshold = dBlockThreshold;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
//compute the img‘s gradient
//this is not limited to the img of 64*158 size
//grad stores the gradient of each pixel
//angle means the angle of gradient
//paddingTL paddingBR is the padding scale which is mentioned in the paper
////////////////////////////////////////////////////////////////////////////////////////////////////////
void CcppHoG :: computeGradient(const Mat& mImg Mat& mGrad Mat& mAngle
Size sPaddingTL Size sPaddingBR) const
{
// assert the img is either 1 channel or 3 channel
uchar ucChannels =mImg.channels();
assert(ucChannels == 1 || ucChannels == 3);
// compute the size after padding
Size newSize(mImg.cols + sPaddingTL.width + sPaddingBR.width mImg.rows + sPaddingBR.height + sPaddingTL.height);
//both the mGrad and mAngle have two channels
mGrad.create(newSizeCV_32FC2);
mAngle.create(newSizeCV_8UC2);
// a vector contains the color scalar 0-255;
Mat_ _mScalar(1256);
const float *mScalar = &_mScalar(00);
//the following method is to make gamacorrection
//as you will see this is an efficiency algorithm
//e.g. if the pixel value is 36 and GamaSqrt is chosen
//the new value = _mScalar(old value);
//so much sqrt functions will be ignored.
if(enGammaCorstyle == GamaSqrt)
{
for(int i = 0; i < 256; i++)
_mScalar(0i) = std::sqrt(float(i));
}
else if(enGammaCorstyle == NoGama)
{
for(int j = 0; j < 256; j++)
_mScalar(0j) = (float)j;
}
//because of the padding we need two more variants iXmapiYMap.
//what‘s more when take the edge into account a new virtual edge will
//be used. here is a simple example help to understand better.
/*
suppose the img‘s matrix is the simple form
[123;
456;
789;]
and the paddings are 1and adding the virtual edge
the img‘s size should be 7*7
so the padded form should be as follows
[
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 115338 2012-06-05 00:40 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\cppHoG.cpp
文件 4132 2012-06-03 22:57 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\cppHoG.h
文件 4435 2012-06-04 21:51 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\cppHoG.vcproj
文件 1405 2012-04-16 17:13 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\cppHoG.vcproj.HP21.Administrator.user
文件 1415 2012-06-11 18:27 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\cppHoG.vcproj.lishan-pc.xiaoxiaolishan.user
文件 18307 2005-04-21 21:09 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\crop_000001a.png
文件 19453 2012-04-18 21:59 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\crop_000010a.png
文件 7360 2012-06-11 18:23 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\Debug\BuildLog.htm
文件 663 2012-05-18 10:52 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\Debug\cppHoG.exe.em
文件 728 2012-05-18 10:52 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\Debug\cppHoG.exe.em
文件 621 2012-06-11 18:23 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\Debug\cppHoG.exe.intermediate.manifest
文件 903269 2012-06-05 00:40 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\Debug\cppHoG.obj
文件 197345 2012-06-11 18:23 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\Debug\mainDetect.obj
文件 65 2012-06-11 18:23 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\Debug\mt.dep
文件 789504 2012-06-11 18:23 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\Debug\vc90.idb
文件 626688 2012-06-11 18:23 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\Debug\vc90.pdb
文件 441474 2012-05-24 19:30 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\Debug\wBlockCache.obj
文件 8043 2012-06-11 18:23 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\mainDetect.cpp
文件 3269 2012-05-18 11:01 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\note.txt
文件 767 2012-04-23 18:11 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\resource.h
文件 32758 2012-05-24 19:30 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\wBlockCache.cpp
文件 1607 2012-03-28 11:23 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG\wBlockCache.h
文件 18181120 2012-06-11 18:27 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG.ncb
文件 884 2012-03-13 20:51 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG.sln
..A..H. 72704 2012-06-11 18:27 cppHoG-raw-RBF\cppHoG-raw-RBF\cppHoG.suo
文件 302592 2012-06-11 18:23 cppHoG-raw-RBF\cppHoG-raw-RBF\Debug\cppHoG.exe
文件 2876612 2012-06-11 18:23 cppHoG-raw-RBF\cppHoG-raw-RBF\Debug\cppHoG.ilk
文件 2386944 2012-06-11 18:23 cppHoG-raw-RBF\cppHoG-raw-RBF\Debug\cppHoG.pdb
文件 115622 2012-06-05 01:01 cppHoG-raw-RBF-PCA\cppHoG-raw-RBF\cppHoG\cppHoG.cpp
文件 4132 2012-06-03 22:57 cppHoG-raw-RBF-PCA\cppHoG-raw-RBF\cppHoG\cppHoG.h
............此处省略52个文件信息
- 上一篇:SSM_users_dept.zip
- 下一篇:基于K-NN的语音情感识别
相关资源
- IPCAM sdk 网络摄像机组件属性和接口(
- 两个基于winpcap开发的网络抓包分析工
- 手写数字识别PCA算法
- PCA+KNN人脸表情识别
- 基于WinPcap的抓包软件设计
- canoco数据分析CCA、PCA、RDA
- VS2012 Qt5 winpcap win64 抓包工具 http协议
- AP6010DN-AGN-FAT-V200R005C10SPCa00.zip
- peak pcan_usb 驱动程序
- PCAN window driver
- 68人脸特征点Hog+SVM人脸表情识别
- STM3232人体检测-心率血氧、跌到检测、
- FPGA应用开发入门与典型_源代码
- Haar人脸检测+SVM+PCA人脸识别
- PCAP02官方开发板配套软件PCAP01 PCAP04
- simca14-part 1 demo版本
- 机器学习9-PCA原理与实现:数据集与
- 人体检测正负样本数据集
- 行人数据库正样本
- iups典型信令数据
- KPCA+KFDA,ORL 库
- 图像融合,像素级遥感图像融合算法
- 主成分分析的图像压缩与重构.pdf
- 用 WinPCAP 监听并分析以太网的帧,记
- 主成分分析的过程及加强鲁棒性方法
- PCA LabVIEW源代码
- 基于sharpPcap局域网数据包捕获程序高
- 华中科技大学计算机网络安全实验基
- 主成分分析法PCA
- 核偏最小二乘KPLSR
评论
共有 条评论