我正在构建一个 OpenCV 应用程序,该应用程序从相机捕获视频并在移除背景后将其覆盖在另一个视频上。
我无法达到合理的速度,因为它以大约 1 fps 的速度播放输出,而我的背景去除以 3 fps 的速度工作。
有没有办法以正常速度显示背景视频并以 3fps 覆盖处理后的视频?
我尝试注释掉我的代码,我意识到问题主要在于渲染部分本身。我尝试将视频与我的网络摄像头提要一起显示,我注意到当使用 openCV 显示时,视频的实际 fps 和 fps 有所下降。
这是示例代码:
void main()
{
CvCapture* capture, *Vcap;
capture = cvCaptureFromCAM(0);
if(!capture)
{
printf("Video Load Error");
}
Vcap = cvCaptureFromAVI("bgDemo.mp4");
//printf("\nEntered BGR");
if(!Vcap)
{
printf("Video Load Error");
}
while(1)
{
IplImage* src = cvQueryFrame(Vcap);
if(!src)
{
Vcap = cvCaptureFromAVI("bgDemo.mp4");
continue;
}
IplImage* bck1 = cvCreateImage(cvGetSize(src),8,3);
cvResize(src,bck1,CV_INTER_LINEAR);
cvShowImage("BCK",bck1);
cvWaitKey(1);
}
}