目前,我正在做一个项目,把相机镜像成盲点。摄像机接收到640×480 NTSC信号。输出屏幕为854x480 NTSC。我用一个EasyCAP视频抓取器抓取相机。在香蕉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
}我怎样才能在不失去速度和帧的情况下,用镜头填充屏幕呢?有可能直接将镜头输出到复合输出中吗?
发布于 2014-11-20 10:00:05
我通过使用:带标志1的namedWindow("window",1);表示WINDOW_AUTOSIZE解决了整个问题。录像现在更真实了。我使用的是一个小监视器,因此窗口大小与监视器几乎相同。
发布于 2014-10-03 12:20:30
问题是,升级和绘图是在这里的软件。香蕉Pi处理器不够强大,无法以每秒30帧的速度处理所需的吞吐量。这是我的猜测,因为即使是桌面系统在处理和同时显示视频时也会遇到滞后问题。
解决此问题的一个常见的解决方案是使用OpenGL进行显示。在这里,升级和显示被卸载到图形处理器。你也可以在香蕉皮上做同样的事。
如果您使用OpenCV支持编译OpenGL,您可以这样做:
namedWindow("window", WINDOW_OPENGL);
imshow("window", destination);注意,如果使用OpenGL,还可以使用近似模型视图矩阵保存翻转操作。然而,要做到这一点,您可能需要自己研究GL代码,而不是使用imshow。
https://stackoverflow.com/questions/26178361
复制相似问题