当前位置: 首页 > news >正文

库尔勒网站建设哪家好沈阳seo按天计费

库尔勒网站建设哪家好,沈阳seo按天计费,菏泽网站推广,本地佛山顺德网站建设1.在代码中 增加了s键开始追踪 e键结束追踪 显示移动距离(代码中可调标尺和像素的比值 以便接近实际距离) 2.绘制了监测区域 只在区域内的检测 3.规定了检测的类别 只有人类才绘制轨迹 import osimport cv2 from ultralytics import YOLO from collections import defaultdic…

1.在代码中 增加了s键开始追踪 e键结束追踪 显示移动距离(代码中可调标尺和像素的比值 以便接近实际距离)

2.绘制了监测区域 只在区域内的检测

3.规定了检测的类别 只有人类才绘制轨迹

import osimport cv2
from ultralytics import YOLO
from collections import defaultdict
import numpy as np
import json
import datetimedef drawTrajectory(boxes, track_ids, track_history, track_length, img, drawing, roi):# 绘制轨迹并计算轨迹长度for box, track_id in zip(boxes, track_ids):x, y, w, h = boxcenter = (int(x), int(y))  # 检测框的中心点# 检查中心点是否在 ROI 内if roi[0] < center[0] < roi[2] and roi[1] < center[1] < roi[3]:if drawing:track = track_history[track_id]track.append((float(x), float(y)))  # 添加中心点到轨迹历史# 计算轨迹长度if len(track) > 1:for i in range(1, len(track)):track_length[track_id] += np.linalg.norm(np.array(track[i]) - np.array(track[i - 1]))# 绘制轨迹(无论是否正在更新轨迹历史)if track_id in track_history:track = track_history[track_id]if len(track) > 1:points = np.hstack(track).astype(np.int32).reshape((-1, 1, 2))cv2.polylines(img, [points], isClosed=False, color=(230, 230, 230), thickness=2)# 在图像上显示轨迹长度actual_length = 0.5  # 实际长度(单位:米)pixel_length = 1000  # 标尺在图像中的像素长度pixel_to_meter_ratio = actual_length / pixel_lengthprint(f"ID:{track_id},移动了轨迹长度{track_length[track_id] * pixel_to_meter_ratio:.2f}")cv2.putText(img, f"ID: {track_id}: length={track_length[track_id] * pixel_to_meter_ratio:.2f} m",(int(x), int(y)), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)if __name__ == "__main__":# 加载配置文件with open("config.json", "r", encoding="utf-8") as f:config = json.load(f)# 从配置文件中读取参数video_path = config["video_path"]roi = config["roi"]model_path = config["model_path"]# 加载 YOLO 模型model = YOLO(model=model_path)# 打开视频文件cap = cv2.VideoCapture(video_path)# 用于存储轨迹历史track_history = defaultdict(lambda: [])# 用于存储轨迹长度track_length = defaultdict(lambda: 0)# 状态标志,表示是否正在绘制轨迹drawing = Falsewhile cap.isOpened():ret, frame = cap.read()if not ret:break# 运行目标追踪(禁用默认的边界框绘制)result = model.track(source=frame, persist=True, show=False, show_boxes=False)# img = frame.copy()  # 使用原始帧,而不是 YOLO 绘制的帧img = result[0].plot()# 获取边界框、轨迹ID和类别IDboxes = result[0].boxes.xywh.cpu()track_ids = result[0].boxes.id.int().cpu().tolist()class_ids = result[0].boxes.cls.int().cpu().tolist()# 过滤出类别为 'person' 的检测结果person_boxes = []person_track_ids = []for box, track_id, class_id in zip(boxes, track_ids, class_ids):if class_id == 0:  # 0 是 'person' 类别的 IDperson_boxes.append(box)person_track_ids.append(track_id)# 检测开始信号和结束信号key = cv2.waitKey(1) & 0xFFif key == ord('s'):  # 按下 's' 键表示开始信号drawing = Trueprint("开始绘制轨迹")# 清空轨迹历史和轨迹长度track_history.clear()track_length.clear()elif key == ord('e'):  # 按下 'e' 键表示结束信号drawing = Falseprint("停止绘制轨迹")# 在保存截图前绘制轨迹drawTrajectory(person_boxes, person_track_ids, track_history, track_length, img, drawing, roi)# 定义文件夹名称output_folder = "output_images"# 如果文件夹不存在,则创建文件夹if not os.path.exists(output_folder):os.makedirs(output_folder)# 获取当前时间戳并格式化为字符串timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")# 将时间戳拼接到文件名中,并保存到指定文件夹output_image_path = os.path.join(output_folder, f"output_frame_{timestamp}.png")cv2.imwrite(output_image_path, img)print(f"当前帧已保存为: {output_image_path}")elif key == 27:  # 按下 ESC 键退出break# 绘制 ROI 矩形cv2.rectangle(img, (roi[0], roi[1]), (roi[2], roi[3]), (0, 255, 0), 2)# 绘制轨迹并计算轨迹长度(仅对 ROI 内的 persons)drawTrajectory(person_boxes, person_track_ids, track_history, track_length, img, drawing, roi)# 显示图像cv2.imshow("demo", img)cap.release()cv2.destroyAllWindows()

源码如上 现在AI遍地都是 想改写复制源码交给AI就改了 

http://www.dtcms.com/a/446639.html

相关文章:

  • DockerCE与cri-docker核心区别解析
  • 视频网站怎么做网站引流南阳企业网站
  • 深入理解 JavaScript 高阶函数:从 createScream 看函数式编程的优雅之道
  • 用户权限控制功能实现说明
  • 常见工厂后处理器作用
  • 公司免费网站制作云匠网接单
  • 网站建设与管理学习收获微信公众号免费模板网站
  • 企业可以做哪些网站做网站前端用什么语言
  • 阿里云服务器上传网站内容北京电力建设公司官网
  • 如何找到网站是谁做的哪家公司网站建设口碑好
  • Bootstrap 简介
  • 锡林浩特网站建设微信开发wordpress托管教程
  • 网站由什么组成网站备案更名
  • CPU高负载场景调优实战
  • 宣城地宝网站开发网络系统管理技能大赛考什么
  • 【Java核心技术/基础】30道Java核心技术集合框架面试题及答案
  • 代做网站公司哪家好pc网站开发
  • 如何用服务器发布网站揭阳制作公司网站
  • 开发网站网络公司wordpress 三栏主题
  • 门户网站报价常用的网站类型有哪些类型有哪些类型
  • 做网站外包群wordpress 大小
  • 论信息系统项目的资源管理和成本管理,(人力资源管理)
  • AI Workflow v.s. AI Agent v.s. Agentic Workflow 与应用建议
  • P1996 约瑟夫问题
  • 有哪些学做衣服的网站网站开发团队人数构成
  • 做网站苏州淘宝店网站建设
  • 对面试的一些思考
  • 【代码随想录day 35】 力扣 01背包问题 二维
  • 百度网盘怎么做网站友情链接交换平台免费
  • 网站模版亮点网站建设有关表格