player_insert_coin

=Reproductor de video player insert coin=

code format="c" // C++ includes.
 * 1) define __DEVCPP__ 1
 * 2) include

// OpenCV includes.
 * 1) include 
 * 2) include 

/*variables globales de petición de ROI */ int listo_el_punto = 0; int xl=0, yt=0,w=100,l=100;//variables temporales de ROI IplImage* Orig_Frame = NULL;//imagen en cuestion CvPoint pt1,pt2,pt3,pt4; /*+-+-+--+ Variaciones para selección de perspectiva -+-+-+-+-+--+-+-+-+-*/ //CvPoint2D32f perspectiva1,perspectiva2,perspectiva3,perspectiva4; //int banderapt1=0,banderapt2=0,finmouse=0,selecc_persp=0,esperadedato=1; //int g_w= 0; //int g_h= 0; /*fin de declaraciones de variables globales de petición de ROI y perspectiva*/ void on_mouse( int event, int x, int y, int flags, void* param ) {   if( Orig_Frame->origin )//para calibrar el origen del click, con el origen de la imagen y = Orig_Frame->height - y;

if( event == CV_EVENT_LBUTTONDOWN )//hallar un punto cuando se baje el click {           pt1 = cvPoint(x,y); }       if( event == CV_EVENT_MOUSEMOVE )//hallar un punto cuando se mueva el click {           pt2 = cvPoint(x,y); }       if( event == CV_EVENT_LBUTTONUP ) {           pt2 = cvPoint(x,y);

if(pt1.x<pt2.x)           { xl=pt1.x;               w=pt2.x-pt1.x;            } else {               xl = pt2.x;                w  = pt1.x - pt2.x;            } if(pt1.y<pt2.y)           { yt=pt1.y;               l=pt2.y-pt1.y;            } else {               yt = pt2.y;                l  = pt1.y - pt2.y;            } //para corregir tamaño y posibles errores de inicio while((w % 4)!= 0 )// si no es par {               w++; xl++; pt2.x++; }           if((l % 2)!= 0 )// si no es par {               l++; yt++; pt2.y++; }           listo_el_punto = 1; } } //globales para el trakbar int val = 0 ; int i=150; int cambio_trackbar=0;

void on_trackbar(int h) { cambio_trackbar=1; }

int main(int argc, char** argv){ CvCapture *capture; CvFont fuente; char cuadrops[10]; cvNamedWindow("ventana", 1); char* filename = argc >= 2 ? argv[1] : (char*)"G:\\los videos a contar\\S6300581.AVI"; capture = cvCaptureFromAVI( filename );

if( !capture ) {       fprintf(stderr,"No se pudo iniciar.\n"); return -1; }   else { printf("Video OK\n"); printf("INSTRUCCIONES:\n"); printf("use el trackbar para moverse en el video:\n"); printf("para avanzar por cuadro use la letra 'd':\n"); printf("para retroceder un cuadro use la letra 'a':\n"); printf("para capturar un frame use la letra 's':\n"); printf("el archivo queda asi:\n"); printf("C:\\capturas de imagen\\captura_de_frame-(%d).jpg\n"); printf("   _______\n"); printf("  /______/'=,\n"); printf(" [     | '=, '=,,\n"); printf(" [-+'=,* )\n");        printf("  (_---_____---_)/\n");        printf("    (O)     (O)\n");

}   CvSize frame_size; frame_size.height = (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT ); frame_size.width = (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH ); int cuadros = (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_COUNT)-1; int temporalpp =val; cvCreateTrackbar("video", "ventana", &temporalpp, cuadros, on_trackbar); IplImage *imagen = NULL; on_trackbar(0); imagen = cvQueryFrame( capture ); Orig_Frame = cvCreateImage(cvGetSize(imagen),8,3); Orig_Frame->origin=imagen->origin; IplImage* temp = cvCreateImage(cvGetSize(imagen),8,3); temp->origin=imagen->origin; cvCopy(imagen,Orig_Frame); cvShowImage("ventana", imagen); cvSetMouseCallback( "ventana", on_mouse, 0 ); int key_pressed; pt1.x=0; pt1.y=0; pt3.x=Orig_Frame->width; pt3.y=Orig_Frame->height; int j=1; IplImage *imagen_a_guardar; for {//video if(imagen == NULL)break; cvSetCaptureProperty( capture, CV_CAP_PROP_POS_FRAMES, temporalpp); imagen = cvQueryFrame( capture ); cvCopy(imagen,Orig_Frame); cvCopy(imagen,temp); pt1.x=0; pt1.y=0; pt3.x=Orig_Frame->width; pt3.y=Orig_Frame->height; for {           cvInitFont(&fuente,CV_FONT_HERSHEY_SIMPLEX, 0.7, 0.7, 0, 1); cvPutText(temp, _itoa(temporalpp,cuadrops, 10), cvPoint((int)5,(int)20), &fuente, cvScalar(255, 0,255)); //cvShowImage("ventana",imagen);

cvRectangle( temp, pt1, pt2, CV_RGB(0,0,100), 1, 8 ,0); cvRectangle( temp, pt2, pt3, CV_RGB(0,0,100), 1, 8 ,0);

cvShowImage("ventana",temp); cvCopy(imagen,temp); key_pressed=0; key_pressed = cvWaitKey(10) ;

if ((key_pressed == 'd') || ((key_pressed) == 27) || (key_pressed == 'a') || (key_pressed == 's') || (cambio_trackbar == 1)) {

cambio_trackbar=0; break; }           if( listo_el_punto == 1 ) {               imagen_a_guardar = cvCreateImage(cvSize(w,l),8,3); imagen_a_guardar->origin=imagen->origin; char file2[200]; sprintf(file2, "C:\\bases de datos\\objeto %d.jpg", j); j++; cvSetImageROI( Orig_Frame, cvRect(xl,yt,w,l)); cvCopy(Orig_Frame,imagen_a_guardar); cvResetImageROI( Orig_Frame ); cvSaveImage(file2,imagen_a_guardar); cvRectangle( Orig_Frame, pt1, pt2, CV_RGB(255,255,255), 3, 8 ,0); cvShowImage("ventana",Orig_Frame); cvWaitKey(250); cvReleaseImage(&imagen_a_guardar); listo_el_punto=0; break; }       }        char file[100]; sprintf(file, "C:\\capturas de imagen\\captura_de_frame(%d).jpg", temporalpp);//básicamente imprime pero en una cadena de caracteres key_pressed = cvWaitKey(20); if (key_pressed == 's') {           cvSaveImage( file,imagen); i++; }       if (key_pressed  == 'a' )temporalpp -= 4; if (key_pressed == 'd' )temporalpp += 4; if (temporalpp>=cuadros+1 ||temporalpp< 0) break; if ((key_pressed & 255) == 27 ) break;//sale en Esc }//video cvDestroyWindow("ventana"); cvReleaseCapture(&capture); return 0; }

code