vc2010+opencv程序编译没问题,可是运行时打不开视频,求高手

dunzi0111 2012-01-14 08:59:25
小弟C++新手,在运行一段代码时编译没问题,可是却运行不了。
..............

..前面省略.....

..............

int main( int argc, char** argv )
{

IplImage* pFrame = NULL;
IplImage* pFrameGray= NULL;
IplImage* pFrImg = NULL;
IplImage* pBkImg = NULL;
IplImage* curImg = NULL;
IplImage* Smooth8U = NULL;
IplImage* Smooth32F = NULL;
IplImage* Eroded = NULL;
IplImage* oriFomer = NULL;
IplImage* oriLatter = NULL;
IplImage* Rotated = NULL;
CvCapture* pCapture = NULL;
CvMat* mat_energy;
int nFrmNum;


cvNamedWindow("video", 1);
cvNamedWindow("Origin",1);
cvMoveWindow("video", 30, 0);
cvMoveWindow("Origin", 690, 0;



if(!(pCapture = cvCaptureFromFile("C:\\Users\\acer\\Desktop\\Star2.avi")))
{
fprintf(stderr, "Can not open video file \n");
return -2;
}

CvGaussBGModel* bg_model=NULL;

pFrame = cvQueryFrame( pCapture );

oriFomer = cvCreateImage(cvSize(pFrame->width, pFrame->height), IPL_DEPTH_8U,1);
oriLatter = cvCreateImage(cvSize(pFrame->width, pFrame->height), IPL_DEPTH_8U,1);
pFrameGray = cvCreateImage(cvSize(pFrame->width, pFrame->height), IPL_DEPTH_8U,1);
Smooth8U = cvCreateImage(cvSize(pFrame->width,pFrame->height), IPL_DEPTH_8U, 1);
Smooth32F = cvCreateImage(cvSize(pFrame->width,pFrame->height), IPL_DEPTH_32F, 1);
Rotated = cvCreateImage(cvSize(pFrame->width,pFrame->height), IPL_DEPTH_32F, 1);
cvZero(Smooth32F);

..............

..后面省略.....

..............

运行时出现如下现象:


(Debug Error!
Program:...sual studio 2010\projects\ransac track\Debug\ransac track.exe
R6010
-abort()has been called
(press retry to debug the application))


(opencv error:bad argument(bad image header)in unknown funtion,file cz:\users\vp\work\ocv\opencv\modules\src\array.cpp,line 3108)

希望路过的大侠帮帮忙,小弟急用,不甚感激!


...全文
499 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dunzi0111 2012-01-15
  • 打赏
  • 举报
回复
经过debug发现在如下处显示指针有问题“ransac track.exe 中的 0x013b20fc 处有未经处理的异常: 0xC0000005: 读取位置 0x0ae3f52c 时发生访问冲突”:
for (int y = 0; y < 9; y++)
{
uchar* ptr = (uchar*) (former->imageData + (formerPlanet[n].y + y - 3 ) * former->widthStep);
for (int x = 0; x < 9; x++)
{
sampling[x][y] = ptr[formerPlanet[n].x + x - 3];
}
}
希望哪位大侠帮忙解答一下,小弟对这个真是不懂啊
dunzi0111 2012-01-14
  • 打赏
  • 举报
回复
我已经装过视频解码器了可是不知道为什么还不行,之前能运行的一个读取视频的程序现在视频也显示不出来了

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧