新手
做了点东西
#include "cv.h"
#include "highgui.h"
#include <time.h>
#include <math.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <fstream>
//#pragma comment(lib,"ws2_32.lib")
using namespace cv;
using namespace std;
// various tracking parameters (in seconds)
const double MHI_DURATION = 0.5;
const double MAX_TIME_DELTA = 0.5;
const double MIN_TIME_DELTA = 0.05;
const int N = 3;
int fps = 0;
int nFrmnum=1;
int numFrames=0;
int frame;
int danger_timestart = 0;
int danger_timeend = 0;
vector<int> vec;
//检测出的感兴趣区域参数
IplImage* dst_img1=0;
const int CONTOUR_MAX_AERA = 6000;
// ring image buffer
IplImage **buf = 0;
int last = 0;
// temporary images
IplImage *mhi = 0; // MHI: motion history image
int filter = CV_GAUSSIAN_5x5;
CvConnectedComp *cur_comp, min_comp;
CvConnectedComp comp;
CvMemStorage *storage;
CvPoint pt[4];
void update_mhi( IplImage* img, IplImage* dst, int diff_threshold, int danger_x[4],int danger_y[4],int danger_width,int danger_length );//**_由于篇幅的限制,这个方法我就不贴了_**
// 参数:
// img – 输入视频帧
// dst – 检测结果
int main(int argc, char** argv)
{
IplImage* motion = 0;
CvCapture* capture = 0;
argv[1] = "F:\\walk.avi";
argv[2] = "walk";
char * filepath = argv[1];
string filename = argv[2];
int danger_x[4]; //定义危险区域的边界顶点坐标
int danger_y[4];
int danger_width=300; //定义危险区域的宽度
int danger_length=280; //定义危险区域的长度
danger_x[0]=200;
danger_y[0]=300;
danger_x[3]=500;
danger_y[3]=50;
danger_x[1]=danger_x[0]+danger_width;
danger_y[1]=danger_y[0]+danger_length;
danger_x[2]=danger_x[3]+danger_width-20;
danger_y[2]=danger_y[3]+danger_length;
//if( argc == 1 || (argc == 2 && strlen(argv[1]) == 1 && isdigit(argv[1][0])))
// capture = cvCaptureFromCAM( argc == 2 ? argv[1][0] - '0' : 0 );
// else if( argc == 2 )
capture = cvCaptureFromAVI( filepath );
fps = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
cout<< "帧率" <<fps <<endl;
numFrames = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT);
cout<<"总帧数" <<numFrames <<endl;
if( capture )
{
cvNamedWindow( "Motion", 1 );
for(;;)
{
IplImage* image;
if( !cvGrabFrame( capture ))
break;
image = cvQueryFrame( capture );
if( image )
{
frame++;
if( !motion )
{
motion = cvCreateImage( cvSize(image->width,image->height), 8, 1 );
cvZero( motion );
motion->origin = image->origin;
}
}
frame++;
update_mhi( image, motion, 60 ,danger_x,danger_y, danger_width, danger_length );
cvShowImage( "Motion", image );
if( cvWaitKey(100) >= 0 )
break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "Motion" );
}
sort( vec.begin(), vec.end() );
vec.erase( unique( vec.begin(), vec.end() ), vec.end() );
for(std::vector<int>::iterator m = vec.begin(); m != vec.end(); m++ ) //用迭代器的方式输出容器对象的值
{ cout<<*m<<endl; }
string outfilename = "data_"+filename+".txt";
ofstream out(outfilename);
for(std::vector<int>::iterator m = vec.begin(); m != vec.end(); m++ ) //用迭代器的方式输出容器对象的值
{
out<<"入侵时间点:"<<*m<<endl;
}
return 0;
}
运行时候出现下面错误:
已加载“C:\Windows\System32\ntdll.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\kernel32.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\KernelBase.dll”,已加载符号(去除源信息)。
已加载“F:\125\OpenCV64\OpenCV2.3\build\x64\vc10\bin\opencv_core230d.dll”,Cannot find or open the PDB file
已加载“C:\Windows\System32\msvcp100d.dll”,已加载符号。
已加载“C:\Windows\System32\msvcr100d.dll”,已加载符号。
已加载“F:\125\OpenCV64\OpenCV2.3\build\x64\vc10\bin\opencv_video230d.dll”,Cannot find or open the PDB file
已加载“F:\125\OpenCV64\OpenCV2.3\build\x64\vc10\bin\opencv_imgproc230d.dll”,Cannot find or open the PDB file
已加载“F:\125\OpenCV64\OpenCV2.3\build\x64\vc10\bin\tbb_debug.dll”,Cannot find or open the PDB file
已加载“F:\125\OpenCV64\OpenCV2.3\build\x64\vc10\bin\opencv_highgui230d.dll”,Cannot find or open the PDB file
已加载“C:\Windows\System32\user32.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\gdi32.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\lpk.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\usp10.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\msvcrt.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\ole32.dll”,已加载符号。
已加载“C:\Windows\System32\rpcrt4.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\oleaut32.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\advapi32.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\sechost.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_a4d6a923711520a9\comctl32.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\avifil32.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\winmm.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\msacm32.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\msvfw32.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\shell32.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\shlwapi.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\avicap32.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\version.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\imm32.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\msctf.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\cryptbase.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\uxtheme.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\clbcatq.dll”,已加载符号(去除源信息)。
已加载“C:\Windows\System32\msrle32.dll”,已加载符号(去除源信息)。
已卸载“C:\Windows\System32\msrle32.dll”
已加载“C:\Windows\System32\msvidc32.dll”,已加载符号(去除源信息)。
已卸载“C:\Windows\System32\msvidc32.dll”
已加载“C:\Windows\System32\msyuv.dll”,已加载符号(去除源信息)。
已卸载“C:\Windows\System32\msyuv.dll”
已加载“C:\Windows\System32\msyuv.dll”,已加载符号(去除源信息)。
已卸载“C:\Windows\System32\msyuv.dll”
已加载“C:\Windows\System32\msyuv.dll”,已加载符号(去除源信息)。
已卸载“C:\Windows\System32\msyuv.dll”
已加载“C:\Windows\System32\iyuv_32.dll”,已加载符号(去除源信息)。
已卸载“C:\Windows\System32\iyuv_32.dll”
已加载“C:\Windows\System32\iyuv_32.dll”,已加载符号(去除源信息)。
已卸载“C:\Windows\System32\iyuv_32.dll”
已加载“C:\Windows\System32\tsbyuv.dll”,已加载符号(去除源信息)。
已卸载“C:\Windows\System32\tsbyuv.dll”
本机”已退出,返回值为 0 (0x0)。
出问题的那几个文件,在对应的路径下面都有。
我把这个几个文件拷到工程下边也会出现问题。
也是报“Cannot find or open the PDB file”,不过前边的路径倒是变成工程的路径了。
求指导,求帮助,我已经卡住好久了。