首页 > 解决方案 > 移动人的热图

问题描述

我正在编写一个代码来可视化人们在街道或购物中心行走的运动路径和覆盖区域,以向具有热图功能的人展示更有趣的地方。

我抓住视频帧并转换为灰色。然后提取框架的高度和宽度。之后通过背景减法算法创建一个蒙版并应用于框架。接下来,我在帧上应用 np.zeros 并创建累加器帧,并添加带有累加器的背景图像和从 0-255 之间的 0-1 值通过“cv2.convertScaleAbs”转换的帧,然后实施阈值处理并应用 colormap_jet,最后我用 RGB 颜色帧添加了阈值帧的结果。

mask = cv2.createBackgroundSubtractorMOG2()

while True:

    ret,frame1 = vs.read()

    frame = cv2.cvtColor(frame1,cv2.COLOR_RGB2GRAY)
    (height,width) = frame.shape[:2]

    sub = mask.apply(frame,None,0.01)

    accumulator = np.zeros((height,width), dtype = np.float)
    sub = sub + accumulator

    ab = cv2.convertScaleAbs(255-np.array(sub,'uint8'))

    ret, acc_thresh = cv2.threshold(ab, ab.mean(),255, cv2.THRESH_TOZERO)
    acc_col = cv2.applyColorMap(acc_thresh, cv2.COLORMAP_JET)

    backg = cv2.addWeighted(np.array(acc_col,'uint8'),0.55,frame1,0.55,0)

    cv2.imshow("frame11",backg)

但是当我运行我的代码时,我无法得到正确的结果。我想改变人们经常移动的区域的颜色。

标签: pythonopencv

解决方案


推荐阅读