【发布时间】:2015-01-21 15:49:12
【问题描述】:
我正在寻找使用来自网络摄像头的 opencv 处理流。我的目标是检测每个帧的矩形。我可以显示结果,但帧率真的很慢,~1 fps。
这里是我的源代码的概述:
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;
}
我想知道是否可以使其线程化以获得至少 30fps 的速度?
我正在使用 Windows 8.1、Visual 2010、c++ 和 OpenCV 2.4.10
【问题讨论】:
标签: c++ windows multithreading opencv image-processing