Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV-相机分辨率_Opencv - Fatal编程技术网

OpenCV-相机分辨率

OpenCV-相机分辨率,opencv,Opencv,正在使用人脸跟踪系统,但OpenCV有问题 如果我实例化捕获并调用QueryFrame(),我将获得640x480图像分辨率。一切都如丝般光滑 _grabber = new Capture(); _grabber.QueryFrame(); 但是,如果我尝试将分辨率提高到800x600,fps会急剧降低 _grabber = new Capture(); _grabber.SetCaptureProperty(CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT, LiveFee

正在使用人脸跟踪系统,但OpenCV有问题

如果我实例化捕获并调用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()之前的宽度/高度


有人知道如何提高每秒帧数吗?谢谢

经过漫长的夜晚,我找到了解决问题的办法。相机本身能够以全分辨率工作,然而,问题在于这行代码

MCvAvgComp[][] facesDetected = _gray.DetectHaarCascade(_face, 1.2, 10, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(150, 150));

其中,最后一个尺寸参数很小(27*27),因此需要大量时间进行计算。解决方案是将该值增加到150,这基本上是最小的人脸检测大小

看起来您正在为每一帧实例化一个新的捕获。显示帧的正确方法是实例化一次,然后在while循环或for循环中查询帧。捕获属性也只需设置一次。您可以尝试通过CV_CAP_PROP_FPS设置相机的帧速率。尽管如此,为了保持带宽,随着分辨率的提高,摄像头的速度确实会降低。嗨,Erik,我只是在开始时实例化它-我只是在每个QueryFrame()之前设置宽度/高度-如果我在开始时设置宽度/高度,则值不会在Hi-Drodbar中保留,因此,改变宽度/高度时,FPS设置可能会被破坏?不。我的意思是,你的相机传感器可能无法像你想要的那样快速传输。这取决于许多因素:物理接口、连接协议、摄像头传感器功能。。。你可以认为相机传感器保持了不平等的fps*分辨率这是什么语言?