I was looking for process a stream with opencv coming from webcam. My goal is to detect rectangles for each frames. I'm able to display the result but the framerate is really slow, ~1 fps.
Here is an overview of my source code:
int main( int argc, char** argv ) {
CvCapture* cap=cvCreateCameraCapture(0);
cvNamedWindow("LiveFeed",CV_WINDOW_AUTOSIZE);
    while(true) {
    frame=cvQueryFrame(cap);
    if(!frame) 
        printf("\n no");
    else {
        Mat mat_img(frame);
        std::vector<std::vector<cv::Point>> rectangle = findSquaresInImage(mat_img);
        rectangle=filterRectangleSimilaire(rectangle,20.0);
        Mat res=debugSquares(rectangle,mat_img);
        cvShowImage("LiveFeed",new IplImage(res));//new IplImage(res));
    }
    char c=cvWaitKey(33);
    if(c==27)
        break;
}
cvReleaseCapture(&cap);
cvDestroyAllWindows();
return 0;
}
I would like to know if it's possible to make it threaded to gain at least 30fps ?
I'm working on windows 8.1, Visual 2010, c++ & OpenCV 2.4.10
 
     
    