AttributeError: module 'cv2.cv2' has no attribute 'legacy'
时间: 2023-06-22 08:38:38 浏览: 253
这个错误通常是由于使用的 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 模块中。
相关问题
AttributeError: module 'cv2' has no attribute 'xfeatures2d'这个错误如何解决
出现 "AttributeError: module 'cv2' has no attribute 'xfeatures2d'" 这个错误是因为 OpenCV 版本问题。
在 OpenCV 的早期版本中,有一个名为 xfeatures2d 的子模块,用于提取图像特征。但是在最新版本的 OpenCV(4.5.3)中,xfeatures2d 模块已经被移除了,这就导致了该错误。
要解决这个问题,你有以下几个选项:
1. 如果你使用的是较旧的 OpenCV 版本,可以尝试升级到最新版本,并且更新代码以使用新的特征提取模块。最新版本的 OpenCV 中的特征提取功能已经迁移到了 xfeatures2d 的继任者模块 xfeatures2d_legacy 中。
2. 如果你需要继续使用旧版本的 OpenCV,你可以安装额外的 opencv-contrib-python 库来获取 xfeatures2d 模块。你可以通过 pip 安装它:`pip install opencv-contrib-python`。
3. 如果你不需要使用 xfeatures2d 模块,可以修改代码,将其替换为其他可用的特征提取方法,如 SIFT 或 SURF。
AttributeError: module 'cv2.legacy' has no attribute 'TrackerCSRT'
AttributeError: module 'cv2.legacy' has no attribute 'TrackerCSRT' 报错是由于cv2.legacy模块中没有TrackerCSRT这个属性导致的。解决方案是检查你的代码中是否正确导入了cv2库,并且检查你的cv2版本是否支持TrackerCSRT。如果你的cv2版本过低,可以尝试升级到最新版本。
阅读全文