处理面部跟踪系统,并且遇到OpenCV问题。
如果我实例化Capture并调用QueryFrame(),我将获得640x480的图像分辨率。一切都如丝般顺滑。
_grabber = new Capture();
_grabber.QueryFrame();
但是,如果我尝试增加分辨率,可以说800x600,fps会急剧下降。
_grabber = new Capture();
_grabber.SetCaptureProperty(CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT, LiveFeedSize.Height);
_grabber.SetCaptureProperty(CAP_PROP.CV_CAP_PROP_FRAME_WIDTH, LiveFeedSize.Width);
_grabber.QueryFrame();
我在每个QueryFrame()之前设置宽度/高度。
有想法如何增加每秒帧数的人?感谢
答案 0 :(得分:0)
所以经过漫长的夜晚,我找到了问题的解决方案。相机本身能够以全分辨率工作,但问题在于这行代码
MCvAvgComp[][] facesDetected = _gray.DetectHaarCascade(_face, 1.2, 10, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(150, 150));
其中最后一个尺寸参数很小(27 * 27),因此需要花费大量时间来计算。解决方案是将值增加到150,这基本上是最小的面部检测尺寸