• 大小: 1.34MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-21
  • 语言: 其他
  • 标签:

资源简介

对摄像头获取的图片进行相应的图像处理,识别出人体

资源截图

代码片段和文件信息

#include “highgui.h“
#include “stdio.h“
#include “cxcore.h“
#include “cv.h“
#define IMAGE_WIDTH 384
#define IMAGE_HEIGHT 288

void main()
{
CvSize ImgSize;
ImgSize.width=IMAGE_WIDTH;
ImgSize.height=IMAGE_HEIGHT;
    IplImage* img=cvLoadImage(“test.jpg“);
IplImage* imgbackground=cvLoadImage(“background.jpg“);
IplImage* dst=cvCreateImage( ImgSize IPL_DEPTH_8U 1 );
cvZero( dst );

IplImage* background = cvCreateImage( ImgSize IPL_DEPTH_8U 1 );
cvZero( background );

IplImage* imgbefore = cvCreateImage( ImgSize IPL_DEPTH_8U 1 );
cvZero( imgbefore );

IplImage* dst2 = cvCreateImage( ImgSize IPL_DEPTH_8U 1 );
cvZero( dst2 );
//   IplImage* dst3 = cvCreateImage( ImgSize IPL_DEPTH_8U 1 );
//   cvZero( dst3 );
//   IplImage* dst4 = cvCreateImage( ImgSize IPL_DEPTH_8U 1 );
//   cvZero( dst4 );

IplImage* YCrCb = cvCreateImage( ImgSize IPL_DEPTH_8U 3 );
cvZero( YCrCb );
IplImage* YCrCb_BG = cvCreateImage( ImgSize IPL_DEPTH_8U 3 );
cvZero( YCrCb_BG );
IplImage* YCrCb_D = cvCreateImage( ImgSize IPL_DEPTH_8U 3 );
cvZero( YCrCb_D );
IplImage* Y = cvCreateImage( ImgSize IPL_DEPTH_8U 1 );
cvZero( Y );
IplImage* Cr = cvCreateImage( ImgSize IPL_DEPTH_8U 1 );
cvZero( Cr );
IplImage* Cb = cvCreateImage( ImgSize IPL_DEPTH_8U 1 );
cvZero( Cb );
    IplImage* CrCb = cvCreateImage( ImgSize IPL_DEPTH_8U 1 );
cvZero( CrCb );
IplImage* pyr = cvCreateImage( cvSize((IMAGE_WIDTH & -2)/2 (IMAGE_HEIGHT & -2)/2) 8 1 );

//  CvMemStorage *stor1;
//     CvSeq *cont1;
//  CvMemStorage *stor2;
//     CvSeq *cont2;
CvMemStorage *stor3;
    CvSeq *cont3;

CvRect r;
r.height=r.width=0;

cvNamedWindow(“Video“ 1);
    cvCvtColor( img imgbefore CV_BGR2GRAY );
cvCvtColor( img YCrCb CV_BGR2YCrCb );

cvCvtColor( imgbackground background CV_BGR2GRAY ); 
  cvCvtColor( imgbackground YCrCb_BG CV_BGR2YCrCb ); 
    cvSubRS(imgbackgroundcvScalar(2552552550)imgbackgroundNULL);



    cvAbsDiff( YCrCb YCrCb_BG YCrCb_D ); 
cvSplit( YCrCb_D Y Cr Cb 0 );

    cvThreshold( Y Y 80 255 CV_THRESH_BINARY );
cvThreshold( Cr Cr 5 255 CV_THRESH_BINARY );
    cvThreshold( Cb Cb 6 255 CV_THRESH_BINARY );

cvSmooth( Cr Cr CV_MEDIAN 3 0 0 0 );
    cvSmooth( Cb Cb CV_MEDIAN 3 0 0 0 );

cvOr(CrCbCrCbNULL);
    cvOr(CrCbYCrCbNULL);



// 做帧差
    cvAbsDiff( imgbefore background dst2 );

// 对差图像做二值化
  cvThreshold( dst2 dst215 255 CV_THRESH_BINARY ); // and threshold it

    // 中值滤波,消除小的噪声
    cvSmooth( dst2 dst2 CV_MEDIAN 3 0 0 0 );

// 向下采样,去掉噪声
    cvPyrDown( dst2 pyr 7 );
    cvDilate( pyr pyr 0 1);  // 做膨胀操作,消除目标的不连续空洞
    cvErode( pyr pyr 0 1);
    cvPyrUp( pyr dst2 7 );

    cvThreshold( dst2 dst210 255 CV_THRESH_BINARY );


    cvAnd(CrCbdst2dstNULL);


// 下面的程序段用来找到轮廓
    //
    // Create dynamic structure and sequence.
//     stor1 = cvCreateMemStorage(0);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      29217  2012-07-05 16:34  图像test\background.JPG

     文件      18612  2012-07-11 09:25  图像test\Debug\test.obj

     文件     164864  2012-07-11 12:39  图像test\Debug\vc60.idb

     文件      94208  2012-07-11 09:25  图像test\Debug\vc60.pdb

     文件     188468  2012-07-11 09:25  图像test\Debug\图像test.exe

     文件     213704  2012-07-11 09:25  图像test\Debug\图像test.ilk

     文件    4114852  2012-07-07 09:26  图像test\Debug\图像test.pch

     文件     467968  2012-07-11 09:25  图像test\Debug\图像test.pdb

     文件       4989  2012-07-11 09:25  图像test\test.cpp

     文件      29400  2012-07-05 16:35  图像test\test.JPG

     文件       4389  2012-07-06 21:23  图像test\图像test.dsp

     文件        524  2012-07-06 18:21  图像test\图像test.dsw

     文件      50176  2012-07-11 12:41  图像test\图像test.ncb

     文件      48640  2012-07-11 12:41  图像test\图像test.opt

     文件       1324  2012-07-11 09:25  图像test\图像test.plg

     目录          0  2012-07-11 12:48  图像test\Debug

     目录          0  2012-07-11 12:48  图像test

----------- ---------  ---------- -----  ----

              5431335                    17


评论

共有 条评论

相关资源