【问题标题】:How to make a heat map using python and openCV [duplicate]如何使用 python 和 openCV 制作热图
【发布时间】:2017-03-19 02:51:03
【问题描述】:

我正在尝试实现这个:

YouTube 链接-https://www.youtube.com/watch?v=Qk4V_x6B7jY&t=5s

博客链接-http://www.businessinsider.in/These-Heat-Maps-Show-How-Retailers-Track-You-As-You-Shop/articleshow/29512380.cms

我想使用 python 和 openCV,但我是 openCV 的初学者,因此我不知道如何实现它。

我有一些基本的想法。我已经能够跟踪运动并在移动对象周围绘制一个矩形,并且我将矩形的坐标保存在外部 csv 文件中。但是,我坚持绘制热图部分。如何做到这一点,随着时间的推移,当人们在一个区域内越来越多地移动时,颜色会从蓝色(正常运动)变为红色(高运动)?请帮忙。。

【问题讨论】:

    标签: python opencv matplotlib heatmap


    【解决方案1】:

    因此,绘制热图的基本思想是直观地获得给定特定事件概率的一些反馈,您可以编写自己的方法,该方法可能采用 0-1 范围内的概率并输出范围内的颜色 (255 , 0, 0) - (0, 0, 255)。或者 Opencv 提供了color-maps。您可能对使用 COLORMAP_JET 感兴趣:

    现在您必须在 0-255 而不是 0-1 范围内标准化概率,您可以使用 cv2.applyColorMap(input_prob, cv2.COLORMAP_JET) 来获得所需的输出。

    【讨论】:

    • 我希望能够更新这些值。 Coz,让我们说最初当运动最小时颜色是蓝色,但是当运动增加时颜色应该更新为红色。现在,如果我在事件发生后返回概率,那么我如何更新这些值?你能详细解释一下吗?这将是一个很大的帮助
    • 所以,我认为这行不通,并且 cv2.applyColorMap() 将第一个参数作为图像文件,所以我认为你写的是错误的..
    • @ZdaR 可以将 input_prob 表示为 0 - 1 之间的值的 3d(3 个通道)数组吗?如果是这样,它只为我输出黑色图像,使用 cv2.imshow()
    • 您可以将您的三通道图像转换为灰度图像,然后在标准化0-255范围内的值后应用此方法
    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 2017-05-08
    • 2020-04-16
    • 1970-01-01
    • 2022-12-15
    • 2021-04-12
    • 1970-01-01
    相关资源
    最近更新 更多