资源简介
代码基于C++的VS环境下编写,可以直接运行,主要功能是计算生成步态能量图

代码片段和文件信息
#include “StdAfx.h“
#include “GenerateGEI.h“
#define H 500
#define W 400
#define base_RATIO 1.25
GenerateGEI::GenerateGEI(const char* folderpath)
{
gei_name=new char[100];
sprintf(gei_name“%s\gei_.jpg“folderpath); //产生的GEI储存位置
num=0;
}
GenerateGEI::~GenerateGEI(void)
{
delete gei_name;
}
int GenerateGEI::InsertImage(Mat image)
{
num++;
Process(image);
return 1;
}
int GenerateGEI::Process(Mat image)
{
Mat origin=FindContours(image);
Mat normal=Resize(origin);
Mat show_gei=CalGei(normal);
imwrite(gei_nameshow_gei);
return 1;
}
Mat GenerateGEI::FindContours(Mat image)
{
Mat image_tmp=image.clone(); //用于findContours因为该函数使用后会导致原图改变,所以要复制一个用于该函数
#ifdef _DEBUG
cv::imshow(“image“image);
cv::waitKey(-1);
#endif
//每个轮廓的所有角点理论上只需要contours[0]
std::vector> contours;
contours.clear();
cv::findContours(image_tmpcontoursCV_RETR_CCOMPCV_CHAIN_APPROX_NONE); //findContours只能处理8UC1和32SC1
//std::cout << “Contours: “ << contours.size() << std::endl;
cv::Rect r0 = cv::boundingRect(cv::Mat(contours[0]));
cv::Mat gait_img_roi = image(r0);
return gait_img_roi;
}
Mat GenerateGEI::Resize(Mat image)
{
float ra = image.rows/image.cols;
cv::Mat gait_roi_tmp;
Mat gait_img2 = Mat::zeros(HWCV_8UC1);
//if(ra>=base_ratio)
{
double resize_scale = (double)H/image.rows;
cv::resize(imagegait_roi_tmpcv::Size()resize_scaleresize_scale); //按比例缩放
for(int i =0;i {
uchar* p_tmp = gait_roi_tmp.ptr(i);
uchar* p = gait_img2.ptr(i);
for(int j=(W-gait_roi_tmp.cols)/2k=0;k {
p[j] = p_tmp[k];
}
}
}
//else
//{
// double resize_scale = (double)W/image.cols;
// cv::resize(imagegait_roi_tmpcv::Size()resize_scaleresize_scale); //按比例缩放
// int i =(H-gait_roi_tmp.rows)/2;
// for(int k = 0;k // {
// uchar* p_tmp = gait_roi_tmp.ptr(k);
// uchar* p = gait_img2.ptr(i);
// for(int j=0;j // {
// p[j]=p_tmp[j];
// }
// }
//}
return gait_img2;
}
Mat GenerateGEI::CalGei(Mat image)
{
if(num==1)
{
gei=image.clone();
}
else
{
//新的图像与原来的gei形成新的gei
for(int i=0;i {
uchar* p_old_gei=gei.ptr(i);
uchar* p=image.ptr(i);
for(int j=0;j {
p_old_gei[j]=(p_old_gei[j]*(num-1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 92672 2015-09-29 22:15 testCreateGEI\Debug\testCreateGEI.exe
文件 625596 2015-09-29 22:15 testCreateGEI\Debug\testCreateGEI.ilk
文件 1608704 2015-09-29 22:15 testCreateGEI\Debug\testCreateGEI.pdb
文件 9076 2015-09-29 22:15 testCreateGEI\testCreateGEI\Debug\BuildLog.htm
文件 323676 2015-09-29 22:15 testCreateGEI\testCreateGEI\Debug\GenerateGEI.obj
文件 67 2015-09-29 22:15 testCreateGEI\testCreateGEI\Debug\mt.dep
文件 11945 2015-09-29 20:19 testCreateGEI\testCreateGEI\Debug\stdafx.obj
文件 663 2015-09-29 20:19 testCreateGEI\testCreateGEI\Debug\testCreateGEI.exe.em
文件 728 2015-09-29 20:19 testCreateGEI\testCreateGEI\Debug\testCreateGEI.exe.em
文件 621 2015-09-29 22:15 testCreateGEI\testCreateGEI\Debug\testCreateGEI.exe.intermediate.manifest
文件 119562 2015-09-29 22:14 testCreateGEI\testCreateGEI\Debug\testCreateGEI.obj
文件 3211264 2015-09-29 20:19 testCreateGEI\testCreateGEI\Debug\testCreateGEI.pch
文件 543744 2015-09-29 22:15 testCreateGEI\testCreateGEI\Debug\vc90.idb
文件 962560 2015-09-29 22:15 testCreateGEI\testCreateGEI\Debug\vc90.pdb
文件 3157 2015-09-29 22:15 testCreateGEI\testCreateGEI\GenerateGEI.cpp
文件 664 2015-09-29 17:08 testCreateGEI\testCreateGEI\GenerateGEI.h
文件 1338 2015-09-23 20:43 testCreateGEI\testCreateGEI\ReadMe.txt
文件 300 2015-09-23 20:43 testCreateGEI\testCreateGEI\stdafx.cpp
文件 320 2015-09-23 20:43 testCreateGEI\testCreateGEI\stdafx.h
文件 765 2015-09-23 20:43 testCreateGEI\testCreateGEI\targetver.h
文件 3386 2015-09-29 22:13 testCreateGEI\testCreateGEI\testCreateGEI.cpp
文件 4978 2015-09-29 22:03 testCreateGEI\testCreateGEI\testCreateGEI.vcproj
文件 1409 2015-10-10 11:25 testCreateGEI\testCreateGEI\testCreateGEI.vcproj.LPJ-PC.LPJ.user
文件 15264768 2015-10-10 11:25 testCreateGEI\testCreateGEI.ncb
文件 905 2015-09-23 20:43 testCreateGEI\testCreateGEI.sln
..A..H. 51712 2015-10-10 11:25 testCreateGEI\testCreateGEI.suo
目录 0 2015-11-21 10:42 testCreateGEI\testCreateGEI\Debug
目录 0 2015-11-21 10:42 testCreateGEI\Debug
目录 0 2015-11-21 10:42 testCreateGEI\testCreateGEI
目录 0 2015-11-21 10:42 testCreateGEI
............此处省略3个文件信息
- 上一篇:非线性滤波
- 下一篇:c++prime课后习题答案PDF版
相关资源
- 安卓c语言开发SDL2+opengles
- 人脸识别(opencv_facedetect_v4l2)
- 颜色识别形状识别STM103嵌入式代码
- openwrt深入学习笔记
- 基于opencv的模板匹配代码
- 交互式计算机图形学 第六版 OpenGL源代
- VC++基于OpenGL模拟的一个3维空间模型
- opencv图片扫描以及校正
- opencv手部轮廓识别以及轨迹识别
- opencv2 3D标定.cpp
- 基于opencv漫水填充算法综合
- opengl绘制汽车.cpp
- 自洽SU3手性夸克-孤子模型中单重子的
- opencv激光中心线的提取
- 手性摄动理论中双迷人重子的辐射衰
- 自协变重子手性扰动理论中自旋1/2双
- OpenCV Computer Vision Application Programming
- 基于图割的图像分割OpenCV+MFC实现
- 识别魔方颜色
- opencv版俄罗斯方块源码
- Kinect手势控制鼠标
- VS2013 / MFC + OpenCV 2.4.9实现视频的播放
- opengl实现水流效果sph
- opengl源代码,全是精华!
- 粒子滤波器+目标跟踪的C++实现,VS2
- OpenGL迷宫山东大学图形学实验三
- C语言openssl库SM2-SM3国密常用函数
- opengl的立方体消隐算法
- 张平OpenCV算法精讲基于python和C++教材
- vc++ opengl代码爆炸
评论
共有 条评论