通过Python流FHD视频在图像上叠加热图

时间:2018-08-09 07:55:24

标签: python opencv overlay pyqtgraph alphablending

我想制作一个基于QT的GUI程序,该程序将热图叠加在来自20fps流FHD视频的图像上。 目标图像看起来像这样

(此外,还应显示覆盖图像旁边的颜色栏。)

每个图像的热图源大小为100x40,因此每帧需要内插FHD(1920x1080)。 (仅供参考,热图源的最小值和最大值分别约为10和100000。)

首先,我在Opencv中使用了cv2.VideoCapture函数从视频中获取图像。然后,我搜索了一些使用Matplotlib组合图像和热图的示例,例如:

我面临的问题是FHD分辨率的处理速度要达到20fps。

对于实时处理,Opencv似乎比Matplotlib更为成熟。 (即使Pyqtgraph提供了很高的速度,我也找不到找到显示热图和颜色条的好方法。)

因此,我使用cv2.applyColorMap和cv2.resize搜索了另一种方法。 看起来cv2.applyColorMap函数不会像Matplotlib中的imshow函数那样自动调整值的范围,因此结果图像的颜色很奇怪。

此外,需要使用QtGui.QImage和QtGui.QPixmap将Opencv图像用于QtWidget,这会导致额外的延迟。 最后,我搜索的方法的总处理时间不能满足要求。

请告诉我解决方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

尽管我为CCTV视频素材做了一些工作,也许您可​​以得到一些帮助, 使用OpenCV,使用第一个基本框架生成运动热图。

https://github.com/ajayrawat12/generate_heatmap