• 大小: 3.86MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-12
  • 语言: C/C++
  • 标签: Open  

资源简介

代码基于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.embed.manifest

     文件        728  2015-09-29 20:19  testCreateGEI\testCreateGEI\Debug\testCreateGEI.exe.embed.manifest.res

     文件        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个文件信息

评论

共有 条评论