我正在使用OpenCV抓取视频帧并将其转换为QPixmaps,并在QLabel上显示。在此之前,它就像一个视频播放器。
问题是,我想在视频上画一些图纸。我尝试了几种方法,但无法使其发挥作用。
第一种方法:
将视频播放器放入表单。在播放器上放置一个空小部件,并在空小部件的paintEvent()方法中创建一些绘图。没用。
第二种方法:
像第一种方法一样在视频播放器上放置一个空小部件,但是将图形放在QPixmap上,然后将QPixmap设置为QLabel,然后显示QLabel。没用。
我可以看到我画了一会儿的形状。可能每当玩家收到新帧时,它会调用update()方法并覆盖我的形状。
第三种方法:
考虑在视频帧上绘制我的形状。但是通过这种方式,我将不得不重复绘制它,就像一秒钟20次。因为我的绘图程序很重,所以这种方法看起来并不漂亮。
那么,通过持续刷新的QPixmap系列,在视频上绘制图像的最佳方式是什么?
答案 0 :(得分:1)
当我在过去完成此操作时,我将pixmap放在QGraphicsScene中,并将绘图放在QGraphicsScene中。分层和排序层是非常直接的,重复使用绘图或转换旧绘图是件小事。
希望有所帮助。