datum.cvInputData = frame opWrapper.emplaceAndPop(op.VectorDatum([datum])) opframe = datum.cvOutputData如何改,使得不画出骨骼图
时间: 2024-09-18 16:00:58 浏览: 45
在OpenPose中,`datum.cvOutputData`通常包含处理后的图像以及关键点检测的结果,包括绘制在图像上用于展示骨骼连接线的部分。如果你想从OpenPose获取关键点坐标但不显示图像,可以跳过`emplaceAndPop`后的图像绘制部分。这里是如何修改这部分代码:
首先,在`datum`赋值之前,保持对原始`frame`的引用,不改变它:
```python
datum = op.Datum()
datum.cvInputData = frame # 照常赋值
```
然后,调用`emplaceAndPop`时,仅传入`datum`,并且返回值不需要赋给`opframe`:
```python
# 只保留返回结果
results = opWrapper.emplaceAndPop([datum])
```
这样,`results`将直接包含关键点检测的数据,而不会包含绘制后的图像。你可以通过`results[0].bodyKeypoints`访问到骨骼坐标数组。
最后,你可以选择不保存或处理`datum.cvOutputData`,因为这将是原始输入帧,没有经过OpenPose的任何绘制操作。
阅读全文