当前位置: 代码迷 >> C++ >> vs2010写个程序,老是显示访问冲突,求高手解决
  详细解决方案

vs2010写个程序,老是显示访问冲突,求高手解决

热度:2853   发布时间:2013-02-26 00:00:00.0
vs2010写个程序,总是显示访问冲突,求高手解决
用vs2010与opencv写了个程序,程序中有四个for循环(没有嵌套,顺序的),这四个循环都要调用一个函数(传递的参数是指针),结果第一个for循环调用时正常运行,第二个for循环调用这个for循环时,总是显示“finalshot.exe 中的 0x01271ca4 处有未经处理的异常: 0xC0000005: 读取位置 0x00000008 时发生访问冲突”。是不是参数是指针的问题,求高手解决。谢了


#include <cv.h>
#include "math.h"
#include <highgui.h>

IplImage* xuanzhuanpj(IplImage* frontImg1,IplImage* leftImg1,IplImage* backImg1,IplImage* rightImg1);
int main(int argc, char* argv[])
{
CvCapture* capture = cvCaptureFromAVI("F:\\1.avi"); 
//cvNamedWindow("qw");
IplImage* frame;
CvVideoWriter *writer1 = 0, *writer2 = 0, *writer3 = 0, *writer4 = 0;
int iscolor = 1;
int fps = 25;
int framew = 176;
int frameh = 105;
writer1 = cvCreateVideoWriter("F:\\41.avi", CV_FOURCC('M','J','P','G'),fps,cvSize

(framew,frameh),iscolor);
writer2 = cvCreateVideoWriter("F:\\42.avi", CV_FOURCC('M','J','P','G'),fps,cvSize

(framew,frameh),iscolor);
writer3 = cvCreateVideoWriter("F:\\43.avi", CV_FOURCC('M','J','P','G'),fps,cvSize

(framew,frameh),iscolor);
writer4 = cvCreateVideoWriter("F:\\44.avi", CV_FOURCC('M','J','P','G'),fps,cvSize

(framew,frameh),iscolor);

cvQueryFrame(capture);
int numFrames = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT);
int temp = numFrames / 4;
printf("\n%d\n", numFrames);


int i;
for (i = 0;i < numFrames; i++)
{
frame = cvQueryFrame(capture);
if (i < temp)
cvWriteFrame(writer1, frame);
else
{
if (i < temp * 2)
cvWriteFrame(writer2, frame);
else
{
if (i < temp * 3)
cvWriteFrame(writer3, frame);
else
if (i < temp * 4) cvWriteFrame(writer4, frame);
}
}
//cvShowImage("qw", frame);
//char key = cvWaitKey(20);
}

CvCapture *capture1 = cvCaptureFromAVI("F:\\41.avi");
CvCapture *capture2 = cvCaptureFromAVI("F:\\42.avi");
CvCapture *capture3 = cvCaptureFromAVI("F:\\43.avi");
CvCapture *capture4 = cvCaptureFromAVI("F:\\44.avi");

IplImage *img1 = 0;
IplImage *img2 = 0;
IplImage *img3 = 0;
IplImage *img4 = 0;
IplImage *img0 = 0;

for (i = 0; i < temp; i++) ////T1         第一个循环,
{


img1 = cvQueryFrame(capture1);
img2 = cvQueryFrame(capture2);
img3 = cvQueryFrame(capture3);
img4 = cvQueryFrame(capture4);
img0 = xuanzhuanpj(img1, img2, img3, img4);    //////调用这个函数正常
cvShowImage("win1",img0);
cvWaitKey(30);
}
for (i = 0; i < temp; i++) ////T2                      ///////第二个循环
{
img1 = cvQueryFrame(capture2);
img2 = cvQueryFrame(capture3);
  相关解决方案