![](/img/trans.png)
[英]How do you stream raspberry pi camera V2 footage via netcat to OpenCV C++
[英]Why does a full screen window resolution in OpenCV (@ Banana Pi, Raspbian) slow down the camera footage and let it lag?
目前,我正在一个项目上,以对摄像机进行镜像以发现盲点。 相机收到640 x 480 NTSC信号。 输出屏幕为854 x 480 NTSC。 我用EasyCAP视频采集器采集相机。 我在Banana Pi上安装了打开的cv 2.4.9。
该项目的关键点是显示器上的视频必须是实时的。 每当我评论使窗口进入全屏状态的那一行时,都会弹出一个小窗口,并且素材运行没有延迟和滞后。 但是,当我将视频设置为全屏显示时,素材会变慢并滞后。
部分代码:
namedWindow("window",0);
setWindowProperty("window",CV_WND_PROP_FULLSCREEN,CV_WINDOW_FULLSCREEN);
while(1){
cap>>image;
flip(image, destination,1);
imshow("window",destination);
waitKey(33); //delay 33 ms
}
如何在不损失速度和帧的情况下用摄像机镜头填充屏幕? 是否可以将素材直接输出到复合输出?
问题在于,此处的缩放和绘图是在软件中完成的。 Banana Pi处理器功能不足,无法以每秒30帧的速度处理所需的吞吐量。 在我这方面是有根据的猜测,因为即使在处理和同时显示视频时,即使台式机系统也可能会遇到滞后问题。
在计算机视觉社区中,针对此问题的常见解决方案是使用OpenGL进行显示。 在这里,升级和显示被转移到图形处理器。 您可以在Banana Pi上执行相同的操作。
如果使用OpenGL支持编译了OpenCV,则可以这样尝试:
namedWindow("window", WINDOW_OPENGL);
imshow("window", destination);
请注意,如果使用OpenGL,还可以通过使用适当的模型视图矩阵来保存翻转操作。 为此,您可能需要亲自学习GL代码,而不要使用imshow。
我使用以下namedWindow("window",1);
解决了整个问题: namedWindow("window",1);
FLAG 1代表WINDOW_AUTOSIZE。 素材现在更加实时。 我使用的是小型监视器,因此窗口大小几乎与监视器相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.