AttributeError: module ‘cv2’ has no attribute ‘saliency’
问题解析
- 已经成功安装cv2且import cv2成功的情况下(如下图黄色框所示),在运行时报如下所示错误:
AttributeError: module 'cv2' has no attribute 'saliency'
- 这个错误通常是由于安装的OpenCV版本不包含saliency模块导致的。saliency模块是OpenCV的一个扩展模块,用于显著性检测
解决方法
1.确保你安装的是包含saliency模块的OpenCV版本。你可以通过运行以下代码来检查OpenCV版本和可用的模块:
import cv2
print(cv2.__version__)
print(dir(cv2))
2.确保输出中包含saliency模块。如果你安装的是通过pip或conda安装的OpenCV版本,并且没有包含saliency模块,可以尝试3和4中的方法重新安装OpenCV,并确保选择一个包含saliency模块的版本。
3.使用pip命令重新安装
pip uninstall opencv-python
pip install opencv-contrib-python -i https://pypi.doubanio.com/simple/
4.使用conda命令重新安装
conda uninstall opencv
conda install -c conda-forge opencv
5.如果以上方法仍然无法解决问题,可能是因为你的OpenCV版本不包含saliency模块。可以使用以下两条命令中的任意一条安装pySaliencyMap(平替
)。
pip install pySaliencyMap
pip install pySaliencyMap2