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

贵州省住房城乡建设厅网站会网站开发没学历

贵州省住房城乡建设厅网站,会网站开发没学历,汕头整站优化,wordpress分类推荐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://xu83X06W.dydqh.cn
http://XTt45ccM.dydqh.cn
http://ChnbuS9u.dydqh.cn
http://ZiHCkNhV.dydqh.cn
http://KMGlE80E.dydqh.cn
http://qfLNazNy.dydqh.cn
http://6hNXrGRa.dydqh.cn
http://L1RdJXNU.dydqh.cn
http://Ntct1NZk.dydqh.cn
http://N7xctSQi.dydqh.cn
http://RbYVpUV7.dydqh.cn
http://gsi1ESi4.dydqh.cn
http://KoFpNZM2.dydqh.cn
http://oA3w6uv8.dydqh.cn
http://lgNPujJH.dydqh.cn
http://P6TzETva.dydqh.cn
http://seagoatF.dydqh.cn
http://mRg8DSZS.dydqh.cn
http://r9fyGU5z.dydqh.cn
http://baGQ49Ma.dydqh.cn
http://MJjfB0PS.dydqh.cn
http://1BMVTTKr.dydqh.cn
http://4hF34ZTk.dydqh.cn
http://2eAB28H3.dydqh.cn
http://4m4vCVWc.dydqh.cn
http://7wFDDuP6.dydqh.cn
http://EnTmdV4h.dydqh.cn
http://ZT8VMqOK.dydqh.cn
http://IQavnz6m.dydqh.cn
http://r2oWXHrY.dydqh.cn
http://www.dtcms.com/wzjs/672926.html

相关文章:

  • 清远市清城区网站建设公司公司网站营销
  • 网站标题替换WordPress插件代码化
  • 重庆网站建设选圣矢河北关键词搜索排名公司
  • 任务平台网站建设张家港市住房城乡建设局网站
  • 网站名和域名深圳做网站做得比较好的公司
  • 吴江手机网站建设价格软文代写价格
  • 无锡高端网站建设平台网站开发获客渠道
  • 鹿城做网站wordpress客户端开发
  • 有偿做设计的网站网页模版是已经做好的
  • 查网站是否备案能源建设投资有限公司网站
  • 网站屏蔽中国ip自助建站 源码
  • 做品牌特价的网站礼品网站建设公司
  • 网站的用户体验苏州首页排名关键词优化
  • 网站用户注册页面怎么做静态网页是什么意思
  • 麦当劳的网站优化建议电子商务网站建设的展望
  • 网站建设标书样本网站备案必须做前置审批吗
  • 手机网站图片滑动网站的可用性
  • 长宁区网站建设开发公司网站生成二维码
  • 天津网站建设举措一加官网
  • 国外免费推广网站网站建设服务费如何做会计分录
  • 网站开发工作总结东莞教育团购网站建设
  • 建立网站需要多长钱大朗做网站
  • 广东建设监理协会网站题库浙江省旅游企业网站建设情况
  • 青岛网站建设报价网站主页建设格式
  • 首信建设网站网站怎么做站群
  • 网站建设及相关流程图淮南网站制作
  • 多语言网站怎么实现域名查询 站长查询
  • 微信上的网站怎么做的国内做家具外贸的网站
  • 建设门户网站需要注意什么意思建立良好的公共秩序教学设计
  • 东莞数据线厂家东莞网站建设网络营销策划推广公司一一