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

如何使用PyDIP获取视频中斑点(Blob)的位置与尺寸参数?

解决方法

diplib的dip.MeasurementTool.Measure方法默认仅返回基础尺寸类特征,你需要手动指定要测量的特征参数,增加位置特征Center即可获取斑点中心坐标。同时你原代码存在变量名拼写错误也会导致输出异常,修正后的代码如下:

import diplib as dip
from matplotlib import pyplot as plt
# 读取视频
vid = dip.ImageReadICS(r'C:\Users\mrtij\.spyder-py3\20211123_152822_capture.ics')
vid = vid[0:-1, 0:-1, 325:3149]
smvid = dip.Gauss(vid, [2,2,0])

# 可初始化存储容器,后续逐帧存所有斑点结果
blob_records = []

for i in range(1000, 1001):
    img = smvid[0:-1, 0:-1, i]
    imgmask = dip.IsodataThreshold(img)
    imgmask = dip.Label(imgmask)
    # 指定需要测量的特征:Size对应斑点尺寸,Center对应斑点中心坐标
    measurement = dip.MeasurementTool.Measure(imgmask, img, ['Size', 'Center'])
    # 输出当前帧所有测量结果
    print(measurement)
    # 遍历当前帧每个斑点提取数据,方便后续存储
    for blob_id in measurement.Objects():
        size = measurement[blob_id]['Size'][0]
        center_x, center_y = measurement[blob_id]['Center']
        blob_records.append({
            'frame_id': i,
            'blob_id': blob_id,
            'center_x': center_x,
            'center_y': center_y,
            'size': size
        })

说明

  • Center默认返回亚像素级精度的坐标,如果需要整数像素坐标直接对返回值做取整处理即可
  • 所有帧处理完成后,可直接将blob_records导出为csv、json等格式做后续分析

内容的提问来源于stack exchange,提问作者Tijmen Boereboom

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:45:06