资源简介
Hog特征提取,详细代码,输出的是特征大数组.
代码片段和文件信息
#include
#include
#include
#include
#include
#define PI 3.14
#define BIN_SIZE 20
#define BIN_NVM 9
#define NORM_WIDTH 130
#define NORM_HEIGHT 82
#define CELL_SIZE 8
#define BLOCK_SIZE 2
#define PIC_CELL_WH 50
#define CELL_W_NVM ((NORM_WIDTH-2) / CELL_SIZE)
#define CELL_H_NVM ((NORM_HEIGHT-2) / CELL_SIZE)
#define BLOCK_W_NVM (CELL_W_NVM - BLOCK_SIZE + 1)
#define BLOCK_H_NVM (CELL_H_NVM - BLOCK_SIZE + 1)
#define CELL_NVM (CELL_W_NVM * CELL_H_NVM)
#define BLOCK_NVM (BLOCK_W_NVM * BLOCK_H_NVM)
#define ARRAY_ALL (BLOCK_W_NVM * BLOCK_H_NVM * BLOCK_SIZE * BLOCK_SIZE * BIN_NVM)
void func(int i_x int i_y int i_w IplImage* Img_in float* fbin)
{
memset(fbin 0 9*sizeof(float));
float f_x = 0.0f f_y = 0.0f f_Nvm = 0.0f f_theta = 0.0f;
for (int ii = i_y; ii < i_y + i_w; ii++)
{
for (int jj = i_x; jj < i_x + i_w; jj++)
{
uchar* pData = (uchar*)(Img_in->imageData + ii * Img_in->widthStep + jj);
f_x = pData[1] - pData[-1];
f_y = pData[Img_in->widthStep]- pData[-Img_in->widthStep];
f_Nvm = pow( f_x*f_x + f_y*f_y 0.5f);
float fAngle = 90.0f;
if (f_x == 0.0f)
{
if (f_y > 0)
{
fAngle = 90.0f;
}
}
else if (f_y == 0.0f)
{
if (f_x > 0)
{
fAngle == 0.0f;
}
else if (f_x < 0)
{
fAngle == 180.0f;
}
}
else
{
f_theta = atan(f_y/f_x); //// atan() 范围为 -Pi/2 到 pi/2 所有9个bin范围是 0~180°
fAngle = (BIN_SIZE*BIN_NVM * f_theta)/PI;
}
if (fAngle < 0)
{
fAngle += 180;
}
int iWhichBin = fAngle/BIN_SIZE;
fbin[iWhichBin] += f_Nvm;
}
}
}
void main()
{
IplImage* img = cvLoadImage(“./003.jpg“);
IplImage *img1 = cvCreateImage(cvGetSize(img)IPL_DEPTH_8U1);
IplImage *img2 = cvCreateImage(cvGetSize(img)IPL_DEPTH_8U1);
CvMat* mat = cvCreateMat(img->width img->heightCV_32FC1);
//// 灰度图
cvCvtColor(imgimg1CV_BGR2GRAY);
cvNamedWindow(“GrayImage“CV_WINDOW_AUTOSIZE);
cvShowImage(“GrayImage“img1);
//// gamma校正
uchar* uData = (uchar*)(img1->imageData);
float* fMat = mat->data.fl;
for (int ii = 0; ii < img1->imageSize; ii++)
{
fMat[ii] = pow( uData[ii] 0.5f);
((uchar*)img2->imageData)[ii] = (uchar)(fMat[ii]);
}
//// 缩放原有图片
IplImage* img3 = 0;
CvSize dst_cvsize;
dst_cvsize.width = NORM_WIDTH;
dst_cvsize.height = NORM_HEIGHT;
img3 = cvCreateImage(dst_cvsize IPL_DEPTH_8U1 );
cvResize(img2 img3 CV_INTER_LINEAR);
//// 计算每个cell每个梯度的大小和方向
int i_binNvm = 0;
float f_bin_out[CELL_NVM][BIN_NVM];
float i_AllbinNvm[][BLOCK_SIZE*BLOCK_SIZE*BIN_NVM] = {0.0f};
int ii_nvm1 = 0 ii_nvm2 = 0;
for (int ii = 1; ii + CELL_SIZE < img3->height; ii+=CELL_SIZE)
{
for (int jj = 1; jj + CELL_SIZE < img3->width; jj+=CELL_SIZE)
{
func(jj ii CELL_SIZE img3 f_bin_out[i_binNvm++]);
}
}
//// 创建了一个img 画每个cell的9个bin的方向大小 注意 X正方形向右 Y正方
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-07-15 08:49 cHog\
目录 0 2015-07-21 16:22 cHog\MyTest_Hog\
文件 49685 2015-07-21 11:14 cHog\MyTest_Hog\003.jpg
目录 0 2015-07-21 15:47 cHog\MyTest_Hog\Debug\
文件 15572 2015-07-21 15:47 cHog\MyTest_Hog\Debug\CL.read.1.tlog
文件 728 2015-07-21 15:47 cHog\MyTest_Hog\Debug\CL.write.1.tlog
文件 1527 2015-07-16 15:34 cHog\MyTest_Hog\Debug\Hog.obj
文件 3164 2015-07-16 15:34 cHog\MyTest_Hog\Debug\MyTest_Hog.Build.CppClean.log
文件 35840 2015-07-21 15:47 cHog\MyTest_Hog\Debug\MyTest_Hog.exe
文件 406 2015-07-16 15:34 cHog\MyTest_Hog\Debug\MyTest_Hog.exe.em
文件 472 2015-07-16 15:34 cHog\MyTest_Hog\Debug\MyTest_Hog.exe.em
文件 381 2015-07-21 15:47 cHog\MyTest_Hog\Debug\MyTest_Hog.exe.intermediate.manifest
文件 430024 2015-07-21 15:47 cHog\MyTest_Hog\Debug\MyTest_Hog.ilk
文件 57 2015-07-21 15:47 cHog\MyTest_Hog\Debug\MyTest_Hog.lastbuildstate
文件 3599 2015-07-21 15:47 cHog\MyTest_Hog\Debug\MyTest_Hog.log
文件 42501 2015-07-21 15:47 cHog\MyTest_Hog\Debug\MyTest_Hog.obj
文件 617472 2015-07-21 15:47 cHog\MyTest_Hog\Debug\MyTest_Hog.pdb
文件 210 2015-07-16 15:34 cHog\MyTest_Hog\Debug\MyTest_Hog_manifest.rc
文件 1702 2015-07-21 15:47 cHog\MyTest_Hog\Debug\cl.command.1.tlog
文件 2 2015-07-21 15:47 cHog\MyTest_Hog\Debug\li
文件 2 2015-07-21 15:47 cHog\MyTest_Hog\Debug\li
文件 2 2015-07-21 15:47 cHog\MyTest_Hog\Debug\li
文件 2 2015-07-21 15:47 cHog\MyTest_Hog\Debug\li
文件 2 2015-07-21 15:47 cHog\MyTest_Hog\Debug\li
文件 2 2015-07-21 15:47 cHog\MyTest_Hog\Debug\li
文件 2 2015-07-21 15:47 cHog\MyTest_Hog\Debug\li
文件 2 2015-07-21 15:47 cHog\MyTest_Hog\Debug\li
文件 2 2015-07-21 15:47 cHog\MyTest_Hog\Debug\li
文件 2 2015-07-21 15:47 cHog\MyTest_Hog\Debug\li
文件 2 2015-07-21 15:47 cHog\MyTest_Hog\Debug\li
文件 2 2015-07-21 15:47 cHog\MyTest_Hog\Debug\li
............此处省略52个文件信息
相关资源
- 可以真实运行的小区物业管理系统源
- freetype2+SDL+SDL_ttf源码包及字符串转b
- qq农场源码
- 基于S2SH网上商城项目源码
- NeHe_OpenGL_VC版本1-48课全部教程以及源
- NavneetDalal关于HOG行人识别的博士论文
- 灰鸽子1.2完整源码+完整控件
- 完整的ssh项目源码
- MTCNN+人脸动态贴纸源码+DEMO
- ZigBee上位机程序带源码
- 精通特征工程.pdf源码.zip
- 图灵书籍(react快速上手开发.pdf+深入
- 图灵书籍(Node.js开发指南.pdf+Node We
- nodejs实战pdf 源码.zip
- 2019最新某小说网站源码小说站必备杰
- ESP8266控制APP+源码合集
- 嵌入式课程设计 万年历 源码+报告
- Swift 4 Apprentice pdf + 源码 raywenderlic
- AES源码包128位,CBC等五种加密方式
- vs2013编译xpdf3.04 中文pdf文件vc操作
- Steam撸号器源码_全.rar
- 仿南航app的源码
- dtcms5.0源码 最新版 带手机版
- jsf+richfaces+hiberante项目源码(个人日志
- crm客户关系管理系统源码177909
- virtio-net-drivers-VittualBox-virtio-net超级网
- 180套竞价模板 竞价单页源码+订单系统
- 微信h5游戏 夺宝源码
-
WebGIS之Openla
yers全面解析源码.rar - 小甲鱼小甲鱼数据结构课件与源码
评论
共有 条评论