Salve ragazzi , avrei bisogno di aiuto riguardo ad un problema con un programmav che utilizza le librerie opencv:

il progetto deve prendere in input una sequenza di immagini dalla webcam , e confrontarle per rilevare se c'è differenza di pixel e quindi movimento , se viene rilevato movimento deve scattare una foto.

il codice del progetto è questo :

codice:
 #include <opencv\cv.h>
#include <stdio.h>
#include <opencv\highgui.h>
#include "opencv2\core\core_c.h"
#include <stdlib.h>

int main() {

         IplImage *frame, *frametime1, *frametime2, *frameForeground;
         CvCapture* capture;
         int key=0;

         //catturo l'immagine
         capture = cvCaptureFromCAM(0);

         //inizializzo l'immagine frameris
         CvSize isize=cvSize(640,480);
         frameForeground=cvCreateImage(isize,8,1);

                  while(key!='q')
         {
             frame = cvQueryFrame( capture );
             cvShowImage("video", frame );
             key=cvWaitKey(10);
             cvSaveImage("foto1.jpg",frame,0);

             frame = cvQueryFrame( capture );
             cvSaveImage("foto2.jpg",frame,0);


         //faccio la differenza
         frametime1=cvLoadImage("foto1.jpg", CV_LOAD_IMAGE_GRAYSCALE);
         frametime2=cvLoadImage("foto2.jpg", CV_LOAD_IMAGE_GRAYSCALE);
         cvAbsDiff(frametime1, frametime2, frameForeground);
         cvThreshold(frameForeground, frameForeground, 15, 255, CV_THRESH_BINARY);

         cvShowImage("ris",frameForeground);


         //conto i pixel bianchi
         int a=0;
         int i, j;
         for(i=0;i<480;i++)
         {
             for(j=0;j<640;j++)
             {
                 CvScalar pixel=cvGet2D(frameForeground,i,j);
                 a=a+pixel.val[0];

             }
         }


         //se c'è stato movimento scatto una foto
         if(a>2000000)
         {
             cvSaveImage("Ladro.jpg",frame,0);
         }

         cvReleaseImage(&frametime1);
         cvReleaseImage(&frametime2);


         }

         //libero la memoria
         cvReleaseCapture( &capture );
         cvDestroyWindow("video");
         return 0;
     }
questo codice lo ha eseguito correttamente una sola volta , se lo eseguo adesso crasha dandomi il seguente errore:

terminate called after throwing an instance of 'cv::Exception'
what(): C:\openCVinstaller\opencv\modules\core\src\arithm. cpp:2841: error: (-215) src1.size == dst.size && src1.type() == dst.type() in function cvAbsDiff

qualcuno può aiutarmi e farmi capire dove sbaglio? grazie!