Python 显示OpenCV+;Gstreamer视频。如何管理窗口和GUI元素?
我使用Gstreamer管道来显示来自OpenCV的视频。开发环境-Python 3,Raspbian 守则的一部分:Python 显示OpenCV+;Gstreamer视频。如何管理窗口和GUI元素?,python,python-3.x,opencv,gtk,gstreamer,Python,Python 3.x,Opencv,Gtk,Gstreamer,我使用Gstreamer管道来显示来自OpenCV的视频。开发环境-Python 3,Raspbian 守则的一部分: ... pipeline_s = "appsrc ! queue ! v4l2convert ! autovideosink sync=false" out = cv2.VideoWriter(pipeline_s, cv2.CAP_GSTREAMER, 0, 20.0, (1280,720)) while True: ret, frame = vs.read()
...
pipeline_s = "appsrc ! queue ! v4l2convert ! autovideosink sync=false"
out = cv2.VideoWriter(pipeline_s, cv2.CAP_GSTREAMER, 0, 20.0, (1280,720))
while True:
ret, frame = vs.read()
if ret:
out.write(frame)
cv2.waitKey(1)
我不使用imshow方法进行显示,因为Gstreamer对Raspberry Pi 4上的OpenGL进行了更好的优化
启动时,视频将在标准Qt或GTK窗口中打开(取决于编译OpenCV的GUI)
如何在Python 3中管理此窗口(全屏、最小化、关闭)并添加自己的控件(按钮、菜单)?
谢谢你的回答 你所做的事情不需要GStreamer。您可以使用
cv2.imshow
显示视频,并根据需要添加按钮。不幸的是,使用Gstreamer pipline在Raspberry 4上显示视频比使用imshow更高效(分别占CPU负载的24-28%和35-50%)。这是因为Raspberry 4的GPU驱动程序存在问题。在《覆盆子3》中,情况正好相反,你所做的事情不需要GStreamer。您可以使用cv2.imshow
显示视频,并根据需要添加按钮。不幸的是,使用Gstreamer pipline在Raspberry 4上显示视频比使用imshow更高效(分别占CPU负载的24-28%和35-50%)。这是因为Raspberry 4的GPU驱动程序存在问题。在《覆盆子3》中,情况正好相反。