使用OpenCV和Python构建运动热图视频!

使用OpenCV+Python构建运动热图视频! 【导读】OpenCV是一个强大的图像和视频处理库,在这篇文章中,我将创建一个运动热图,用于检测运动、以及物体或人的流动方向,在投影公共区域时可以对建筑师有所帮助。 简介 OpenCV,或(开源计算机视觉)是英特尔于1999年开发的一个库,主要提供计算机视觉和实时视频的相关操作,它是用C++编写的,同时也支持多种其它语言(包括Python)。 工作流程 这个程序是基于一种被称为高斯背景差法的技术,这项技术被广泛应用于用稳定的摄像机检测运动物体。 背景差法创建一个表示帧(图像的静态部分)背景的模板,. 阅读详情

OpenCV是一个强大的图像和视频处理库,在这篇文章中,我将创建一个运动热图,用于检测运动、一些物体或人的流动方向,以及在投影公共区域时对建筑师的帮助。

简介:

OpenCV,或(开源计算机视觉)是英特尔于1999年开发的一个库,主要是计算机视觉和实时视频操作,它是用C++编写的,但受不同的语言(包括Python)支持。

工作流程:

这个程序是基于一种被称为高斯背景减法的技术。这项技术被广泛应用于用稳定的摄像机检测运动物体。

背景减法创建一个表示帧(图像的静态部分)背景的蒙版,对于每一帧,它将减去前一帧。

让我们对该算法如何工作的两个主要步骤进行一个简要概述:

  • 背景初始化:在第一步中,通过冻结第一帧来计算背景的模型。
  • 更新:在第二步中,下一帧将从上一帧中减去,因此,如果两帧之间发生变化(移动),则这些帧的差异将反映出该变化,可以通过应用过滤器来进行市场销售。

以下是背景遮罩应用于从城市摄像机录制的短视频的示例:

代码:

对于整个项目存储库,请在此处检查。

  • https://github.com/robertosan...

代码首先读取输入的视频文件并初始化所需的一些变量:

capture = cv2.VideoCapture('input.mp4')
background_subtractor = cv2.bgsegm.createBackgroundSubtractorMOG()
length = int(capture.get(cv2.CAP_PROP_FRAME_COUNT))

然后,for循环遍历帧开始:

for i in range(0, length):

    ret, frame = capture.read()

    # If first frame
    if first_iteration_indicator == 1:

        first_frame = copy.deepcopy(frame)
        height, width = frame.shape[:2]
        accum_image = np.zeros((height, width), np.uint8)

第一个if块检查该帧是否为视频的第一帧,这样做是为了初始化背景减法的背景,然后accum_image使用与该帧的大小相对应的大小来初始化该数组。

filter = background_subtractor.apply(frame)  # remove the background

threshold = 2
maxValue = 2
ret, th1 = cv2.threshold(filter, threshold, maxValue, cv2.THRESH_BINARY)

accum_image = cv2.add(accum_image, th1)

color_image_video = cv2.applyColorMap(accum_image, cv2.COLORMAP_HOT)

为了消除例如风,小鸟飞行等少量运动,将阈值与maxValue一起应用到遮罩上。

然后将掩码的结果添加到accum_image数组中,对每个帧执行此操作。结果由用于存储视频中发生的每个运动的accum_image数组组成,。

此外,在最后,因此,当已经对每个帧执行了先前描述的操作时,颜色映射被应用于遮罩并且遮罩与当前帧合并。

更进一步说,可以制作一个显示热图逐帧衰减的视频。为了实现这一点,将导出每个帧,然后再次使用cv2,通过合并所有帧来生成视频:

video = cv2.VideoWriter('output.avi', fourcc, 30.0, (width, height))
for image in images:
    video.write(cv2.imread(os.path.join(image_folder, image)))

cv2.destroyAllWindows()

最后结果:

完整代码获取点这

 

Python+opencv3.4+kalman(卡尔曼)滤波实现视频中运动物体追踪和轨迹绘制 官方卡尔曼滤波目标追踪实例c++版,本文的opencv版本代码是由改代码改编而来 link kalman滤波相关知识,理解等 link hsv色彩对照表:(设置运动目标hsv阈值时要用到) 实现效果: 需要视频的话可以去我的下载里面找,有上面这个视频 实验环境: Python3.6+OpenCV3.4+pycharm2019 代码实现: 首先是一个简单的不用kalman滤波的运动目标追踪代码 这里可以根据需要进行摄像头运动目标识别,只要把 camera = cv2.VideoCapture('./vid 阅读详情

相关推荐

python_opencv 运动检测视频处理

python_opencv 运动检测视频处理本文代码是做一个基本的运动检测代码如下:遇到的问题及解决办法: 本文代码是做一个基本的运动检测 借鉴别人的代码并做了小小的扩展,实现了自己需要的功能,并将实现过程中遇到的问题及解决办法做了总结,特此分享给大家, 代码如下: import cv2 import numpy as np import os import os.path list1 = ...

张益达的博客 3937

python物体追踪opencv_python+opencv实现动态物体追踪

简单几行就可以实现对动态物体的追踪,足见opencv在图像处理上的强大。python代码:import cv2import numpy as npcamera=cv2.VideoCapture(0)firstframe=Nonewhile True:ret,frame = camera.read()if not ret:breakgray=cv2.cvtColor(frame,cv2.COLOR_...

weixin_39564755的博客 764

使用OpenCV和Python构建自己的车辆检测模型!

概述 你对智慧城市的想法感到兴奋吗?如果是的话,你会喜欢这个关于建立你自己的车辆检测系统的教程的 在深入实现部分之前,我们将首先了解如何检测视频中的移动目标 我们将使用OpenCV和Python构建自动车辆检测器 介绍 我喜欢智慧城市的理念。自动智能能源系统、电网、一键接入端口的想法等等。这是一个令人着迷的概念!老实说,这是一个数据科学家的梦想,我很高兴世界上很多城市都在朝着更智能的方向发展。 智能城市的核心组成部分之一是自动交通管理。这不禁让我思考——我能用我的数据科学知识来建立一个车辆检测模型

爬遍所有网站 2123

使用OpenCV和Python构建运动热图视频

作者|Roberto Sannazzaro 编译|Flin 来源|towardsdatascience OpenCV是一个强大的图像和视频处理库,在这篇文章中,我将创建一个运动热图,用于检测运动、一些物体或人的流动方向,以及在投影公共区域时对建筑师的帮助。 简介: OpenCV,或(开源计算机视觉)是英特尔于1999年开发的一个库,主要是计算机视觉和实时视频操作,它是用C++编写的,但受不同的语言(包括Python)支持。 工作流程: 这个程序是基于一种被称为高斯背景减法的技术。这项技术被广泛应用于用稳定

TensorFlowNews 628

python图片转视频

def makevideo(path, fps): """ 将图片合成视频. path: 视频路径,fps: 帧率 """ fourcc = cv2.VideoWriter_fourcc(*"mp4v") path1 = 'C:/Users/Administrator/Desktop/rocker1' # 图像文件夹路径 im = Image.open('C:/Users/Administrator/Desktop/rocker1/rocker1.jpg') # 其中一

一只菜猫的博客 850

热视觉2:使用Python和OpenCV从图像中测量温度

这篇博客将介绍学习热/中远红外视觉的基础知识,gray8 和 gray16 图像(即最常见的热成像格式)之间的差异,学习如何使用Python和OpenCV从热图像中的每个像素点测量温度,并以不同的调色板显示结果。以及如何实时计算视频流和UVC热像仪的每个像素温度。

qq_40985985的博客 6712

使用OpenCV+Python构建运动热图视频

OpenCV是一个强大的图像和视频处理库,在这篇文章中,我将创建一个运动热图,用于检测运动、以及物体或人的流动方向,在投影公共区域时可以对建筑师有所帮助。简介OpenCV,或(开源计算机...

深度学习与计算机视觉 661

opencv-python运动物体位置追踪实验1

opencv-python运动物体位置追踪实验一.预备知识介绍①此实验的代码与颜色轨迹描绘实验的代码非常类似,本质还是通过颜色识别追踪运动物体的实时位置②cnt

python时heatmap_使用OpenCV和Python构建运动热图视频

OpenCV是一个强大的图像和视频处理库,在这篇文章中,我将创建一个运动热图,用于检测运动、一些物体或人的流动方向,以及在投影公共区域时对建筑师的帮助。简介:OpenCV,或(开源计算机视觉)是英特尔于1999年开发的一个库,主要是计算机视觉和实时视频操作,它是用C++编写的,但受不同的语言(包括Python)支持。工作流程:这个程序是基于一种被称为高斯背景减法的技术。这项技术被广泛应用于用稳定的...

weixin_39969060的博客 271

heatmap:运动的opencv热图

热图 opencv 运动热图。

python+opencv实现动态物体追踪

主要为大家详细介绍了python+opencv实现动态物体的追踪,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

用 Python 和 OpenCV 检测和跟踪运动对象

这个该死的家伙。我就知道他偷了我最后一罐啤酒! 对于一个男人来讲,这些话永远都不该说。但是当我关上冰箱门的时候,我愤怒地叹息,感到厌恶,自言自语地说了这些。 你看,我花了12个小时写了这篇将要发表的文章《PyImageSearch Gurus course》。我的脑子都糊掉了,像个半熟的摊鸡蛋一样,几乎要从耳朵里流出来了。当我深夜决定结束工作的时候,我只想放松一下,看看我最爱的电影——

GarfieldEr007的专栏 8169

银河麒麟(桌面版/服务器版)远程桌面配置全攻略:XRDP与VNC实战指南

本文提供了银河麒麟操作系统(桌面版与服务器版)配置远程桌面的完整实战指南。详细对比并演示了XRDP与VNC两种主流方案的安装、配置与连接步骤,涵盖从环境准备、软件安装、服务启动到客户端连接的全过程,并针对常见的黑屏、连接失败等问题给出了有效的排坑解决方案,帮助用户实现跨平台的便捷图形化远程管理。

b0c1d2的博客 818

用OpenCV检测行人移动方向

项目介绍 在此文章中,我们将使用 python 中的 opencv 库创建一个运动热图,用于检测物体或人的流动方向。 输入:一段包含行人运动的视频文件。 输出:运动热图视频,其中的一帧如下图所示: 实现流程 这个程序是基于一种被称为高斯背景差法的技术,这项技术被广泛应用于用稳定的摄像机检测运动物体。 背景差法创建一个表示帧(图像的静态部分)背景的模板,对于每一帧,它将减去前一帧。 其主要步骤只有两个: 背景初始化:在第一步中,通过冻结第一帧来计算背景的模型; 更新:在第二步中,下一帧将减去上一帧,如果两

cocofisher的博客 3475

ESP32+micro-ROS机器人开发实战:轻量级ROS2嵌入式集成

ROS2是现代机器人软件栈的核心框架,其基于DDS的分布式通信与QoS保障能力为多节点协同提供基础支撑;而micro-ROS作为专为微控制器优化的ROS2兼容中间件,解决了资源受限设备(如ESP32)接入ROS2生态的关键难题。其通过分层架构将DDS通信下沉至上位机Agent,使MCU仅需运行轻量Client,大幅降低内存开销(实测<180KB)并保留标准ROS2接口语义。该方案广泛应用于教育机器人、移动底盘、传感器节点等嵌入式场景,尤其适合基于ESP-IDF开发的Wi-Fi/BLE物联网机器人系统。本文以

weixin_29025501的博客 402

最新测算源码PHP算命源码-风水八字-八字起名-塔罗牌占卜

未来,随着技术的发展和用户需求的变化,我们可以继续对系统进行升级和优化,以满足更多用户的需求和期望。数据库设计:创建一个名为bazi的数据库表,包含以下字段:id(自增ID)、name(姓名)、sex(性别)、birth_date(出生日期)、birth_time(出生时间)、bazi(八字结果)。数据库设计:创建一个包含塔罗牌信息的数据库表,如tarot_cards,包含字段:id(塔罗牌ID)、name(塔罗牌名称)、meaning(塔罗牌含义)等。根据操作系统的不同,PHP的安装方法会有所不同。

shanbeizi的博客 2421

使用OpenCV和Python构建自己的车辆检测模型

概述你对智慧城市领域有兴趣吗?如果是的话,你会喜欢这个关于实现你自己的车辆检测系统的教程在深入实现部分之前,我们将首先了解如何检测视频中的移动目标我们将使用OpenCV和Python构建...

深度学习与计算机视觉 3935

PaddleOCR转ONNX模型实战:5分钟搞定中文OCR推理部署(附完整代码)

本文详细介绍了将PaddleOCR模型转换为ONNX格式并进行高效推理部署的完整实战方案。通过Paddle2ONNX工具实现模型转换,利用ONNX Runtime构建跨平台推理引擎,涵盖环境配置、模型优化、批量处理及多平台部署等关键步骤,显著提升中文OCR在边缘设备上的推理性能。

weixin_29051811的博客 617

【Python】监控视频中运动目标检测的代码实现及效果展示

0、介绍 基于python,使用opencv库函数,实现监控视频中的运动目标检测,Mark一下! 干扰性和灵敏度的权衡,可通过调节代码中的参数(高斯模糊核、面积阈值、帧差间隔等)进行设置。   1、代码 以下代码亲测可直接运行。  import cv2 vc = cv2.VideoCapture("C:\\Users\\jason\\Desktop\\video.MP4") # ...

AMG_GT的博客 1万+

避开这些坑!STM32H750 IAP升级实战:从Bootloader设计到APP接收的完整避坑指南

本文深入探讨STM32H750 IAP升级的完整避坑指南,从Bootloader设计到APP接收的全流程实践。特别针对QSPI Flash运行限制、SRAM跳转机制和固件校验等核心问题,提供工业级解决方案,帮助开发者提升升级成功率和系统稳定性。

weixin_30471561的博客 275

在URP中正确写入Sprite深度以使用DOF

我准备在文字冒险中加入景深的效果,但是因为unity内置shader的缘故,sprite是不会写入深度的,而如果要使用PostProcessing的DOF效果的话,是必须要将半透明物体的深度正确写入Depth Buffer的,这篇消耗了我大量精力的文章就是要介绍正确写入的方法。 其实,如果只是要在2D游戏中实现类似于景深的效果,不写入深度其实也是可以的,我找到的有两种方案:一种是实时对Sprite进行模糊计算;二是直接使用离线预模糊的图片,根据强度进行混合。 离线预模糊 虽然这两种方法都可以比较简

FREEstriker的博客 2730
上一篇: 这篇应该是pandas最详细的用法了!没有之一!
下一篇: 用Python字符串的方式看黑人抬棺,我的快乐就这么简单!
pythonlaodi
博客等级 码龄6年 286粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值