AttributeError: module 'cv2.cv2' has no attribute 'legacy'
时间: 2023-06-22 07:38:38 浏览: 276
这个错误通常是由于使用的 OpenCV 版本不同导致的。在 OpenCV 4.x 版本中,一些旧版函数被移动到了 legacy 模块中,需要使用 cv2.legacy 模块来调用这些函数。但是在 OpenCV 3.x 版本中,这些函数是直接包含在 cv2 模块中的。
因此,如果您使用的是 OpenCV 3.x 版本,可以尝试将代码中的 cv2.legacy 替换为 cv2,即:
```python
tracker = cv2.TrackerKCF_create()
```
如果您使用的是 OpenCV 4.x 版本,可以使用 cv2.legacy 模块来调用这些函数,即:
```python
tracker = cv2.legacy.TrackerKCF_create()
```
另外,如果您的 OpenCV 版本是 4.4 或更高版本,可以尝试使用 cv2.TrackerKCF_create() 函数代替 cv2.legacy.TrackerKCF_create(),因为在这个版本中,一些旧版函数已经被移动到了 cv2 模块中。
相关问题
Traceback (most recent call last): File "D:\test\beijing5.4.py", line 61, in <module> _, motion = cv2.optflow_legacy.calcOpticalFlowFarneback(prev_frame, frame, None, 0.5, 3, 15, 3, 5, 1.2, 0) AttributeError: module 'cv2.cv2' has no attribute 'optflow_legacy'
这个错误的意思是 cv2 模块中没有名为 optflow_legacy 的属性。这可能是因为你使用的 OpenCV 版本太新或太旧,不支持 optflow_legacy 模块。
你可以考虑更新你的 OpenCV 版本,或者使用另外的光流算法来代替 calcOpticalFlowFarneback 函数。如果你使用的是较新的 OpenCV 版本,可以尝试使用 calcOpticalFlowFarneback 的替代函数 calcOpticalFlowFarnebackGPU。
上述代码出现错误:AttributeError: module 'cv2' has no attribute 'Tracker_create'
根据提供的引用内容,代码出现错误的原因是因为cv2库中的Tracker_create方法被删除了,所以在使用该方法时会报错。为了解决这个问题,可以使用引用中提供的改动后的代码,将原本的cv2.TrackerBoosting_create等方法改为cv2.legacy.TrackerBoosting_create等方法。这样就可以避免使用被删除的Tracker_create方法,从而解决报错问题。
阅读全文