Capture d'image unique à partir d'une webcam

Quelle serait la meilleure façon en utilisant le meilleur de la bibliothèque de capturer rapidement une image à partir d'une webcam avec c++?
EDIT:

Bien que la faq exemple montre comment capturer un flux d'images, j'ai transformé un peu pour faire ce dont j'ai besoin. Merci.

#include "cv.h"  
#include "highgui.h"  
#include <stdio.h>
int main() {  
    CvCapture* capture = cvCaptureFromCAM(CV_CAP_ANY);  
    if(!capture){  
        fprintf(stderr, "ERROR: capture is NULL \n");  
        getchar();  
        return -1;  
    }  
    cvNamedWindow("mywindow", CV_WINDOW_AUTOSIZE);  
    IplImage* frame = cvQueryFrame(capture);  
    if(!frame) {  
        fprintf(stderr,"ERROR: frame is null.. \n");  
        getchar();        
    }  
    while(1) {  
        cvShowImage("mywindow", frame);  
        if((cvWaitKey(10) & 255) == 27) break;  
    }  
    cvReleaseCapture(&capture);  
    cvDestroyWindow("mywindow");  
    return 0;  
}  
InformationsquelleAutor a sandwhich | 2010-11-26