资源简介
代码基于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版
相关资源
- 非线性滤波
- OpencV与MFC综合应用.rar
- 利用opencv 完成camshift+ kalman
- C语言实现图像的文字识别OpenCV+OCR实现
- 基于opencv中AdaBoost的人脸检测
- 基于MFC对话框的OpenCV视频播放(new)
- 一个简单的摄像机定标与立体匹配测
- VC6.0 OpenCV 摄像头程序
- OpenCV漫水填充程序 by浅墨
- OpenCV图像的膨胀与腐蚀程序 by浅墨
- 多运动目标检测和跟踪
- 基于MFC用OpenGL画得一个三棱柱
- OpenGL三维图形程序设计及源码 c++
- 点云数据处理---用opengl绘制显示并操
- 模板:基于OpenCV的车辆速度检测c++
- 3DSLoader.rar
- 图像识别水果代码
- 跌倒检测-OPENCV-VC++
- C++使用Openssl进行RSA加密解密及签名验
- 三维五角星
- 虚拟三维场景opengl编程
- 基于opencv C++实现毛衣衣服的瑕疵检测
- C++用Opencv将图片转化为灰度图并保存
- opencv 求二值化图像的形心(只能是二
- opengl MFC时钟动画
- 树莓派opencv环境搭建
- C++ OpenGL实现太阳系运行轨迹
- openCV纹理图像特征提取,比较两幅图
- C++开发的OPENGL立方体,支持鼠标拖拽
- OpenInventor中COIN3D三维程序开发
评论
共有 条评论