資源簡介
對攝像頭獲取的圖片進行相應的圖像處理,識別出人體

代碼片段和文件信息
#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
- 上一篇:中醫術語查詢系統
- 下一篇:計算機專業頂崗實習報告
評論
共有 條評論