- 主题:请大神指点一条明路
最近在树莓派上开发,需要从摄像头读取视频,把每帧处理后显示出来,
现在用的opencv,读取视频和处理每帧的图像没有问题,但是用opencv的imshow显示的效率实在太低。
如果只是显示一个固定图像(排除读取图像和处理的时间)1080p的分辨率的话,只能达到
10fps,CPU占满一个核。
但如果应vlc播放1080p的视频,解码加显示,24fps,才占用6%的cpu(差不多一个核的1/4)。
我想知道如何简单实现vlc这种显示效率?
--
FROM 103.85.179.*
激活opengl,用opengl渲染图片。
【 在 capriccio 的大作中提到: 】
: 最近在树莓派上开发,需要从摄像头读取视频,把每帧处理后显示出来,
: 现在用的opencv,读取视频和处理每帧的图像没有问题,但是用opencv的imshow显示的效率实在太低。
: 如果只是显示一个固定图像(排除读取图像和处理的时间)1080p的分辨率的话,只能达到
: ...................
--来自微水木3.5.11
--
FROM 140.206.195.*
没有这样的库吗?
【 在 foliver (Oliver) 的大作中提到: 】
: 激活opengl,用opengl渲染图片。
: --来自微水木3.5.11
--
FROM 115.171.39.*
两种方法:
第一种,重新编译opencv,启用opengl支持。然后通过highgui模块获得opengl窗口,imshow就能直接使用gpu加速了。
第二种, 单独开启OpenGL窗口,把opencv处理好的图片作为纹理送到opengl中显示。用这种时,注意opencv和opengl的Y轴是反的。
网上都有相关教程。
【 在 capriccio 的大作中提到: 】
: 没有这样的库吗?
:
: 【 在 foliver (Oliver) 的大作中提到: 】
: ...................
--来自微水木3.5.11
--
FROM 140.206.195.*
谢谢指点!
【 在 foliver (Oliver) 的大作中提到: 】
: 两种方法:
: 第一种,重新编译opencv,启用opengl支持。然后通过highgui模块获得opengl窗口,imshow就能直接使用gpu加速了。
: 第二种, 单独开启OpenGL窗口,把opencv处理好的图片作为纹理送到opengl中显示。用这种时,注意opencv和opengl的Y轴是反的。
: ...................
--
FROM 115.171.39.*