You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Python与OpenCV的运动学研究:帧内物体坐标提取工具开发需求

快速实现代码方案

以下是直接可用的代码,适配你的需求,步骤清晰,新手能快速跑通:

依赖安装

先安装必要库:

pip install opencv-python pandas

完整代码

import cv2
import pandas as pd
import os

# 配置参数
FRAME_FOLDER = "你的帧文件夹路径"  # 替换成你的帧存放目录
CSV_SAVE_PATH = "motion_data.csv"
# 按文件名排序帧(确保顺序正确)
frame_files = sorted([f for f in os.listdir(FRAME_FOLDER) if f.endswith(('.jpg', '.png', '.jpeg'))])
data = []
current_frame_idx = 0

def mouse_callback(event, x, y, flags, param):
    global current_frame_idx
    # 仅处理左键点击
    if event == cv2.EVENT_LBUTTONDOWN:
        # 记录帧号(从1开始)、x坐标、y坐标
        frame_num = current_frame_idx + 1
        data.append({"frame_num": frame_num, "x": x, "y": y})
        print(f"已记录:帧{frame_num} ({x}, {y})")
        # 切换到下一帧
        current_frame_idx += 1

# 创建窗口并绑定鼠标事件
cv2.namedWindow("Motion Tracker")
cv2.setMouseCallback("Motion Tracker", mouse_callback)

# 逐帧显示
while current_frame_idx < len(frame_files):
    frame_path = os.path.join(FRAME_FOLDER, frame_files[current_frame_idx])
    frame = cv2.imread(frame_path)
    if frame is None:
        print(f"无法读取帧:{frame_path}")
        current_frame_idx += 1
        continue
    
    # 在窗口显示帧,标注当前帧号
    cv2.putText(frame, f"Frame: {current_frame_idx + 1}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
    cv2.imshow("Motion Tracker", frame)
    
    # 等待点击,按ESC可提前退出
    key = cv2.waitKey(0)
    if key == 27:  # ESC键
        break

# 保存数据到CSV
if data:
    df = pd.DataFrame(data)
    df.to_csv(CSV_SAVE_PATH, index=False)
    print(f"数据已保存至 {CSV_SAVE_PATH}")
else:
    print("未记录任何数据")

# 清理窗口
cv2.destroyAllWindows()

使用说明

  1. 替换FRAME_FOLDER为你的帧文件存放目录,确保帧文件命名是按顺序的(比如frame_001.jpg、frame_002.jpg)
  2. 运行代码,弹出窗口后用左键点击每帧中的运动物体,程序会自动切换到下一帧
  3. 所有帧处理完或按ESC退出后,数据会自动保存到指定的CSV文件
  4. CSV文件包含frame_num(帧号)、x、y三列,后续可以用Excel或Python的numpy/pandas分析速度、加速度

关键细节说明

  • 帧排序:用sorted()确保帧按顺序加载,避免乱序
  • 鼠标回调:仅响应左键点击,点击后自动推进帧索引
  • 数据保存:用pandas快速生成CSV,比原生csv模块更简洁,新手易上手
  • 异常处理:跳过无法读取的帧,避免程序崩溃

内容的提问来源于stack exchange,提问作者Ricardo Niedmann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 20:35:23