For example : this code made 2 images t time and t-x time in video stream.
This images shows origin image(Left), T time Image(center), T-x time Image(right)
This is example source code
You can control time delay frame using DELAY_T macro variable.
#define DELAY_T 30
void main()
{
//image class
IplImage* image = 0;
IplImage* image1 = 0;
IplImage* image2 = 0;
//camera point
CvCapture * capture = cvCreateFileCapture("RunF.avi"); //cvCaptureFromCAM(0); //cvCreateFileCapture("1.avi");
//make window
cvNamedWindow("Origin");
cvNamedWindow( "t");
cvNamedWindow( "t-1");
int one_zero=0;
while(1) {
//capture a frame form cam
if( cvGrabFrame( capture ) == 0)
break;
image = cvRetrieveFrame( capture );
if(image2 == 0)
{
//image = cvRetrieveFrame( capture );
image1 = cvCreateImage(cvSize(image->width, image->height), image->depth, image->nChannels);
image2 = cvCreateImage(cvSize(image->width, image->height), image->depth, image->nChannels);
}
//show window
cvShowImage( "Origin", image);
if(one_zero == 0 )
{
//copy to image class
memcpy(image2->imageData, image1->imageData, sizeof(char)*image->imageSize );
//image = cvRetrieveFrame( capture );
memcpy(image1->imageData, image->imageData, sizeof(char)*image->imageSize );
//show window
cvShowImage( "t", image1 );
cvShowImage( "t-1", image2 );
}
//Time Delay
one_zero++;
if( (one_zero%DELAY_T) == 0)
{
one_zero=0;
}
//break
if( cvWaitKey(10) >= 0 )
break;
}
//release capture point
cvReleaseCapture( &capture );
//close the window
cvDestroyAllWindows();
//release Images
cvReleaseImage(&image1);
cvReleaseImage(&image2);
}
Thank you.
No comments:
Post a Comment