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