麻烦哪位大仙能帮我看看下面的代码哪里错了?本人是初学者代码是在vc6.0+opencv1.0环境下的,代码编译通过了,只是运行以后会弹出一个对话框,好像是NULL pointer(opencv gui error hander)#include"cv.h"
#include"highgui.h"
#include"math.h"
#include"cxcore.h"
#include"stdio.h"int main()
{   int i,j;
IplImage* image1=0;
IplImage *gg1=0, *gg2=0, *gg3=0, *gg4=0, *gg5=0, *gg6=0, *gg=0;
IplImage* image2=0;
IplImage* image3=0;
    IplImage* image4=0;
IplImage* image5=0;
IplImage* tempImg1=0;
    IplImage* tempImg2=0;
    IplImage* tempImg3=0;
CvSize size;

        
    image3=cvLoadImage("3.bmp", 0); image1=cvLoadImage("1.bmp", 0);
image2=cvLoadImage("2.bmp", 0); image4=cvLoadImage("4.bmp", 0);
image5=cvLoadImage("5.bmp", 0); gg1=cvCreateImage(cvSize(image3->width,image3->height), 8, 1 );
gg2=cvCreateImage(cvSize(image3->width,image3->height), 8, 1);
    gg3=cvCreateImage(cvSize(image3->width,image3->height), 8, 1);  
gg4=cvCreateImage(cvSize(image3->width,image3->height), 8, 1); 
gg5=cvCreateImage(cvSize(image3->width,image3->height), 8, 1); 
gg6=cvCreateImage(cvSize(image3->width,image3->height), 8, 1); 

size = cvSize(image3->width, image3->height);
//tempImg1 = cvCreateImage( cvSize((size.width & -2)/2, (size.height & -2)/2), 8, 1 );
    tempImg1 = cvCreateImage( cvSize( image3 -> width/2, image3 -> height/2 ), image3 -> depth, image3 -> nChannels );    for(i=0;i<image3->width;i++)
{

  for(j=0;j<image3->height;j++)
  {
CvPoint pt = {i,j};
((uchar*)(gg1->imageData + gg1->widthStep*pt.y))[pt.x]=abs(
  ((uchar*)(image3->imageData + image3->widthStep*pt.y))[pt.x]-
  ((uchar*)(image1->imageData + image1->widthStep*pt.y))[pt.x]); ((uchar*)(gg2->imageData + gg2->widthStep*pt.y))[pt.x]=abs(
((uchar*)(image5->imageData + image5->widthStep*pt.y))[pt.x]-
  ((uchar*)(image3->imageData + image3->widthStep*pt.y))[pt.x]);                  
  }
}
     cvAnd(gg1, gg2, gg3,0);
 cvPyrDown(gg3, tempImg1, CV_GAUSSIAN_5x5);
 cvDilate(gg3, gg3, 0, 1);
 IplImage *gg7= cvCreateImage( cvSize( tempImg1 -> width*2, tempImg1 -> height*2 ), 
           tempImg1 -> depth, tempImg1 -> nChannels );
 cvPyrUp(tempImg1, gg7, CV_GAUSSIAN_5x5);
 
    tempImg2 = cvCreateImage( cvSize( image3 -> width/2, image3 -> height/2 ), image3 -> depth, image3 -> nChannels );
for(i=0;i<image3->width;i++)
{

  for(j=0;j<image3->height;j++)
  {
CvPoint pt = {i,j};
((uchar*)(gg4->imageData + gg4->widthStep*pt.y))[pt.x]=abs(
  ((uchar*)(image2->imageData + image2->widthStep*pt.y))[pt.x]-
  ((uchar*)(image3->imageData + image3->widthStep*pt.y))[pt.x]); ((uchar*)(gg5->imageData + gg5->widthStep*pt.y))[pt.x]=abs(
((uchar*)(image4->imageData + image4->widthStep*pt.y))[pt.x]-
  ((uchar*)(image3->imageData + image3->widthStep*pt.y))[pt.x]);                  
  }
}
     cvAnd(gg4, gg5, gg6,0);
 cvPyrDown(gg6, tempImg2, CV_GAUSSIAN_5x5);
 cvDilate(gg6, gg6, 0, 1);
 IplImage *gg8= cvCreateImage( cvSize( tempImg2 -> width*2, tempImg2 -> height*2 ), 
           tempImg2 -> depth, tempImg2 -> nChannels );
         cvPyrUp(tempImg2, gg8, CV_GAUSSIAN_5x5);

          cvOr(gg7, gg8, gg, 0);  cvPyrDown(gg, tempImg3, CV_GAUSSIAN_5x5);
printf("OK\n");

         
         cvDilate(gg7, gg7, 0, 3);//pengzhang
 cvErode(gg7, gg7, 0, 3);//fushi
 
         
    cvNamedWindow( "运动图像1", 0);
cvNamedWindow( "运动图像2", 0);
    cvNamedWindow( "运动图像3", 0);
cvNamedWindow( "运动图像4", 0);
cvNamedWindow( "运动图像5", 0);
        cvNamedWindow( "帧间差分图像1", 0); 
cvNamedWindow( "帧间差分图像2", 0); 
        cvNamedWindow( "帧间差分图像3", 0);         
cvShowImage("运动图像1",image1);
        cvShowImage("运动图像2",image2);
        cvShowImage("运动图像3",image3);
cvShowImage("运动图像4",image4);
    cvShowImage("运动图像5",image5);
        cvShowImage("帧间差分图像1",gg3);
cvShowImage("帧间差分图像2",gg6);
cvShowImage("帧间差分图像3",gg);
        cvWaitKey(0);//等待按键 //释放图像
        cvReleaseImage(&image1);
        cvReleaseImage(&image2);
cvReleaseImage(&image3);
     cvReleaseImage(&image4);
cvReleaseImage(&image5);
        cvReleaseImage(&gg3);
cvReleaseImage(&gg6);
cvReleaseImage(&gg);
        //销毁窗口
        cvDestroyWindow("运动图像1");
        cvDestroyWindow("运动图像2");
cvDestroyWindow("运动图像3");
        cvDestroyWindow("运动图像4");
        cvDestroyWindow("运动图像5");
        cvDestroyWindow("帧间差分图像1");
cvDestroyWindow("帧间差分图像2");
cvDestroyWindow("帧间差分图像3");
        
        return(0);
} vc6.0 opencv  帧差法