使用 OpenCV 进行视频中的行人检测

在计算机视觉领域,行人检测是一个重要的研究方向,它在视频监控、自动驾驶、人机交互等领域都有着广泛的应用。本文将介绍如何使用 OpenCV 库来实现视频中的行人检测。

环境准备

首先,我们需要安装 OpenCV 库。可以通过以下命令来安装:

pip install opencv-python

代码实现

以下是实现视频中行人检测的代码:

import cv2
import os
import numpy as np
import timedef detect_people():current_dir = os.path.dirname(os.path.abspath(__file__))video_path = os.path.join(current_dir, 'walk2.mp4')if not os.path.exists(video_path):print(f"Error: 视频文件不存在,请确认文件路径: {video_path}")return# 创建HOG检测器hog = cv2.HOGDescriptor()hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())cap = cv2.VideoCapture(video_path)if not cap.isOpened():print("Error: 无法打开视频文件")return# 设置视频捕获的分辨率cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)# 用于控制检测频率frame_count = 0detection_interval = 3  # 每隔3帧进行一次检测last_boxes = []while True:start_time = time.time()ret, frame = cap.read()if not ret:break# 降低分辨率frame = cv2.resize(frame, (640, 480))# 每隔几帧进行一次检测if frame_count % detection_interval == 0:# 检测人boxes, weights = hog.detectMultiScale(frame, winStride=(8, 8),padding=(4, 4),scale=1.1)last_boxes = boxeselse:boxes = last_boxes# 在图像上绘制边界框for (x, y, w, h) in boxes:cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)# 显示人数people_count = len(boxes)cv2.putText(frame, f'People Count: {people_count}', (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)# 计算和显示FPSfps = 1.0 / (time.time() - start_time)cv2.putText(frame, f'FPS: {int(fps)}', (10, 60), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)# 显示结果cv2.imshow('People Detection', frame)frame_count += 1# 减小等待时间,提高帧率if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()cv2.destroyAllWindows()if __name__ == '__main__':detect_people()

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/62022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytest日志总结

pytest日志分为两类: 一、终端(控制台)打印的日志 1、指定-s,脚本中print打印出的信息会显示在终端; 2、pytest打印的summary信息,这部分是pytest 的默认输出(例如测试结果PASSED, FAILED, S…

数据治理:在企业数据管理中的关键角色与实现路径——《DAMA 数据管理知识体系指南》读书笔记- 第 3 章

文章目录 1. 数据治理的核心内涵与战略价值2. 数据治理的驱动因素:不仅仅是合规3. 数据治理的组织模型:选择适合企业结构的运营模式4. 实施数据治理的关键步骤:战略、制度和文化5. 数据治理工具的选择:支持业务与流程的高效管理6.…

candence: 常用的一些命令: Move / Mirror / Rotate / Spain / Fix / unFix / Flipdesign

常用的一些命令 一、 Move 移动 一个可移动一个,也可多个 移动器件 二、 Mirror 镜像 Mirror 就是top 和 bottom 层的器件进行相互转换 三、 Rotate 旋转 移动过程中旋转 四、旋转 Spain 不能在移动中旋转 可以一次旋转一个,也可多个 一次旋转…

【测试工具JMeter篇】JMeter性能测试入门级教程(二)出炉,测试君请各位收藏了!!!

上篇文章:CSDN 我们介绍了JMeter的一些原理介绍,以及安装配置和启动流程,本文我们就来讲讲JMeter如何使用。 一、JMeter目录结构组成 1. 根目录 Jmeter安装包解压后的根目录如下图: 1.1 backups目录:脚本备份目录&am…

【拥抱AI】如何调整Milvus的存储路径?

调整Milvus的存储路径是一个重要的配置步骤,可以确保你的数据存储在合适的磁盘位置,避免磁盘空间不足或性能瓶颈。以下是如何调整Milvus存储路径的详细步骤: 1. 修改配置文件 Milvus的存储路径配置主要在server_config.yaml文件中。你需要编…

VSCode 如何选中包含某个字母的所有行

文章目录 写在前面一、需求描述二、解决方法参考链接 写在前面 自己的测试环境:VSCode 一、需求描述 由于需要处理文件,需求是删除文件中包含某个字母的所有行。 二、解决方法 在 Visual Studio Code (VSCode) 中,如果你想选中所有包含某…

MATLAB深度学习(六)——LSTM长短期神经网络原理与应用

LSTM的应用可以参见一个相当好的视频:小车倒立摆最优控制教程 - Part1 Simulink Simscape Multibody仿真建模_哔哩哔哩_bilibili 6.1 序列建模——循环神经网络 循环神经网络RNN是一类专门用于处理序列性数据x,,xn的神经网络结构&#xff0c…

c++趣味编程玩转物联网:树莓派Pico控制 LED点阵屏

88 LED点阵屏是一种常见的数字显示设备,被广泛应用于电子时钟、公交车显示屏和游戏设备中。在本项目中,我们使用树莓派Pico开发板,通过I2C协议驱动HT16K33芯片,实现点阵屏显示心形图案、倒计时、动态矩形和动态圆等内容。本文详细…

transformer.js(四): 模型接口介绍

前面的文章底层架构及性能优化指南介绍了transformer.js的架构和优化策略,在本文中,将详细介绍 transformer.js 的模型接口,帮助你了解如何在 JavaScript 环境中使用这些强大的工具。 推荐阅读 ansformer.js(二)&…

11.25 校内模拟赛总结

难评 复盘 7:40 开题 还是决定采取前期审题时间长一点的策略 T1,显然枚举斜率比较优,算一下复杂度是对的,就会了;T2 好神秘啊,感觉又是什么根据结论然后贪心删数;T3 显然是优化 dp,感觉可做…

学习编程,学习中间件,学习源码的思路

01 看的多,内化不足 最近想复习一下编程相关的知识,在复习前我翻开了之前的一些笔记,这些笔记基本都是从书本、视频、博客等摘取记录的,看着这些笔记心里总结:看的多,内化不足。 02 整理大纲 为了解决这个…

[C++]vector:迭代器失效和vector<string>中更深层次拷贝的问题

迭代器失效 一、迭代器失效的两大类型异地扩容后的失效原地删除后的失效 二、vector<string>出现的深层次拷贝问题 一、迭代器失效的两大类型 异地扩容后的失效 在vector容器中&#xff0c;通常情况下的扩容都是异地扩容&#xff0c;例如resize, reserve&#xff0c;但…

初识 Django

声明 适用于想要快速入门的开发者&#xff0c;有前后端开发以及语言基础&#xff0c;想要学习语法或者特性。 想要学会快速开发&#xff0c;快速入门&#xff0c;请看博客【实用向】Django 框架入门并结合本篇文章。 命令 命令描述startproject创建一个 Django 项目startapp…

胸肩背腿手臂常用训练动作

胸部&#xff08;Chest&#xff09; 平板卧推&#xff1a;锻炼胸大肌&#xff0c;尤其是胸骨部分。上斜卧推&#xff1a;主要锻炼胸部上侧。下斜卧推&#xff1a;锻炼胸部下侧。哑铃飞鸟&#xff1a;锻炼胸部的外侧和胸大肌的拉伸。俯卧撑&#xff1a;全面锻炼胸部&#xff0c…

.net core MVC入门(一)

文章目录 项目地址一、环境配置1.1 安装EF core需要包1.2 配置数据库连接二、使用EF创建表2.1 整体流程梳理2.1 建表详细流程三、添加第一个视图3.1整体流程梳理3.1 添加视图,并显示在web里四、使用EF增加Catogory数据,并且读取数据到页面4.1整体流程梳理4.2 实现五、增加Cat…

【freertos】FreeRTOS消息队列的介绍与使用

FreeRTOS消息队列的介绍与使用 一、概述二、消息队列的运作机制三、API函数1、消息队列创建函数2、消息队列静态创建函数3、用于向队列尾部发送一个队列消息4、在中断服务程序中用于向队列尾部发送一个消息5、向队列队首发送一个消息6、在中断服务程序中向消息队列队首发送一个…

页的初步认识

关于准备 我们在之前的学习中&#xff0c;已经学习了相当一部分有关段的知识&#xff0c;CPU提供了段的机制来给我们的内存进行保护&#xff0c;但实际上我们在x86下的段base是0&#xff0c;实际上并没有偏移 两种分页模式 我们有两种分页模式&#xff0c;29912分页和101012…

题目一:bugku---game1

2024.11.21 1、题目连接&#xff1a; 2、打开是个小游戏 3、正常玩一把结束后&#xff0c;用bp抓包 4、查看url有三个参数&#xff0c;score对应的就是我们结束这把游戏时获得的分数&#xff0c;sign的zM后面为这把游戏分数的base64加密 5、将抓到的包&#xff0c;发送到重放…

利用Python爬虫获取淘宝商品评论:实战案例分析

在数字化时代&#xff0c;数据的价值日益凸显&#xff0c;尤其是对于电商平台而言&#xff0c;商品评论作为用户反馈的重要载体&#xff0c;蕴含着丰富的信息。本文将详细介绍如何利用Python爬虫技术获取淘宝商品评论&#xff0c;包括代码示例和关键步骤解析。 淘宝商品评论的…

HC-SR501 PIR传感器是如何工作的以及如何与ESP32接口的

如果您正在考虑为自己制作防盗警报器,或者您正在考虑在您的房间里自动化灯光,那么您绝对应该考虑为您的项目使用 HC-SR501 被动红外传感器或 PIR 传感器,因为顾名思义,PIR 传感器允许您检测人或动物何时进出您的传感器范围。您可以在许多现代现成的安全系统中找到此传感器。…