1- #include "highgui.h"
2- #include "cv.h"
3- #include "stdio.h"
4- #include "iostream.h"
5-
6- int main() {
7-
8- CvCapture* capture = cvCaptureFromCAM(-1);
9- if (!capture){
10- fprintf(stderr, "Error: capture = NULL\n");
11- getchar();
12- return -1;
13- }
14-
15- cvNamedWindow("Ventana", 1);
16-
17- IplImage* frame = cvQueryFrame(capture);
18- if (!frame) {
19- fprintf(stderr, "Error: frame = NULL\n");
20- getchar();
21- return -1;
22- }
23- cvShowImage("Ventana", frame);
24- cvWaitKey(0);
25- cvReleaseCapture(&capture);
26- cvDestroyWindow("Ventana");
27- return(0);
28- }
El programa anterior crea un capture (línea 8) para hacer referencia a la webcam instalada en la máquina, también crea una variable (frame) que apuntará a la imagen que recibe la cámara. Posteriormente se crea una ventana en donde se mostrará lo sensado por la cámara y finalmente se liberará el capture y se destruirá la ventana.
Si se quiere capturar una secuencia de cuadros, es decir un flujo de video, hay que agregar el siguiente código:
while(1){ //mientras sea verdadero
IplImage* frame = cvQueryFrame(capture);//graba un cuadro tomado por la cámara
if (!frame) {
fprintf(stderr, "Error: frame = NULL\n");
getchar();
return -1;
}
cvShowImage("Ventana", frame);//muestra el cuadro tomado por la cámara
if((cvWaitKey(10) & 255)==27) break;//rompe el ciclo while si se oprime la tecla esc
}
No hay comentarios:
Publicar un comentario