0

我正在使用 OpenCV 抓取视频帧并将它们转换为 QPixmaps,并在 QLabel 上显示。在那之前它就像一个视频播放器一样工作。

问题是,我想在视频上画一些图画。我尝试了几种方法,但无法使其工作。

第一种方法:

将视频播放器放到表单中。在播放器上放置一个空小部件,并在空小部件的 paintEvent() 方法中绘制一些图形。不工作。

第二种方法:

像第一种方法一样在视频播放器上放置一个空小部件,但在 QPixmap 上绘制图形,并将 QPixmap 设置为 QLabel,然后显示 QLabel。不工作。

我可以暂时看到我画的形状。可能每当播放器接收到新帧时,它都会调用 update() 方法并覆盖我的形状。

第三种方法:

考虑在视频帧上绘制我的形状。但这样一来,我就得反复画,比如一秒钟画20次。因为我的绘图程序有点重,所以这种方法似乎不太好。

那么,在不断刷新的 QPixmap 系列上,在视频上绘制图像的最佳方式是什么?

4

1 回答 1

1

当我过去这样做时,我将像素图放在 QGraphicsScene 中,并将绘图放在 QGraphicsScene 中。分层和排序图层非常简单,重用绘图或转换旧绘图是小菜一碟。

希望有帮助。

于 2013-04-07T22:16:58.350 回答