Example #1
0
int main( int argc, char** argv ) {

    // CAPTURE VIDEO
    CvCapture* capture;
    capture = cvCreateFileCapture("trafficDay.avi");
    if( capture == NULL ) {
        fprintf (stderr, "cannot open file\n");
        exit(1);
    }


    // ALLOCATE SPACE FOR IplImage STRUCTURES.
    // DEFAULT ONE FROM VIDEO.
    IplImage *big_frame = cvQueryFrame(capture);
    IplImage *frame = cvCreateImage (cvSize(DEFAULT_SIZE(0), DEFAULT_SIZE(1)), big_frame->depth, big_frame->nChannels);
    IplImage *last_frame = cvCreateImage (cvSize(DEFAULT_SIZE(0), DEFAULT_SIZE(1)), big_frame->depth, big_frame->nChannels);
    IplImage *diff = cvCreateImage (cvSize(DEFAULT_SIZE(0), DEFAULT_SIZE(1)), big_frame->depth, big_frame->nChannels);
    cvResize (big_frame, last_frame, CV_INTER_LINEAR );


    // CREATE WINDOWS AND LOCATE THEM TO TOP LEFT OF THE SCREEN
    cvNamedWindow( "Video", CV_WINDOW_AUTOSIZE);
    cvNamedWindow( "Difference", CV_WINDOW_AUTOSIZE);
    cvMoveWindow ("Video", 100, 0);
    cvMoveWindow ("Difference", 100, 500);


    // MAIN LOOP
    while((big_frame = cvQueryFrame (capture)) != NULL) {
        // RESIZE IMAGE FROM VIDEO
        cvResize (big_frame, frame, CV_INTER_LINEAR );
        // SHOW CAPTURED AND RESIZED IMAGE
        cvShowImage("Video", frame);

        // COMPUTE AND SWOW DIFFERENCE
        cvSub (frame, last_frame, diff, NULL);
        cvShowImage("Difference", diff);

        // WAIT FOR BREAK AND TO ADJUST FPS
        char c = cvWaitKey(50);
        if(c == 27) break;

        // UPDATE LAST FRAME
        cvCopy (frame, last_frame, NULL);

    }

    //RELEASE IMAGE STRUCTURES
    cvReleaseImage (&last_frame);
    cvReleaseImage (&frame);
    cvReleaseImage (&diff);

    // RELEASE CAPTURE
    cvReleaseCapture(&capture);
    // DESTROY WINDOWS
    cvDestroyWindow("Video");
    cvDestroyWindow("Difference");
    return 0;
}
Example #2
0
void *ocl_setParameterValue (struct ld_kernel_s *ldKernel,
                             struct ld_kern_param_s *ldParam,
                             void *buffer,  size_t size)
{
  cl_mem mem_obj = (void *) -1;
  cl_int errcode_ret;

  if (ldParam->is_pointer) {
    DEFAULT_SIZE(size)
    
    mem_obj = real_clCreateBuffer(ldOclEnv.context, CL_MEM_READ_WRITE, size, NULL, clck_(&errcode_ret));

    clCheck(real_clEnqueueWriteBuffer(ldOclEnv.command_queue,
                                      (cl_mem) mem_obj,
                                      CL_TRUE,
                                      0, size, buffer,
                                      0, NULL, NULL));
    buffer = &mem_obj;
    size = sizeof(cl_mem);
  }

  if (size == 0 && strstr(ldParam->name, "_tex")) {
    cl_image_format format = {CL_R, CL_UNSIGNED_INT32};
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
    mem_obj = clCreateImage2D (ldOclEnv.context, CL_MEM_READ_ONLY, &format, 100, 1, 0, &format, clck_(&errcode_ret));
#pragma GCC diagnostic pop
    buffer = &mem_obj;
    size = sizeof(cl_mem);
  }
  
  clCheck(real_clSetKernelArg ((cl_kernel) ldKernel->handle, ldParam->index,
                               size, buffer));

  return mem_obj;
    
}