首页 > 解决方案 > AttributeError:部分初始化的模块“cv2”没有属性“CascadeClassifier”(很可能是由于循环导入)

问题描述

多年来,我一直在兜圈子,试图弄清楚这一点。为什么我会收到此属性错误?我试过使用绝对引用,并得到同样的问题。PyCharm 还强调 CascadeClassifier、cvtColor 和 COLOR_BGR2GRAY 说它在 cv2.py 中找不到参考。我不确定是否有更多信息与解决此问题相关,因此请询问是否需要更多信息。

import cv2
face_cascade = cv2.CascadeClassifier('read_only/haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('read_only/haarcascade_eye.xml')
grayed_images = []
for x in np_images:
    gray_img = cv2.cvtColor(x, cv2.COLOR_BGR2GRAY)
    grayed_images.append(gray_img)
    print(x)

标签: pythoncv2

解决方案


如果我是正确的,那么您使用的环境与您运行的环境不同。

Step1:opencv-python在您运行时看到的命令行/终端中pip list

运行python命令。复制您的代码,检查它是否有效(您可以简单地import cv2替代)

如果可行,我的想法应该是正确的。否则,还有更大的事情。

Step 2:(假设 step1 有效。)在 Pycharm 的 UnderRun > Edit Configurations中,更改python interpreter为您拥有的任何解释器opencv

Step2 better alternative:在 Pycharm 上,打开terminal, pip install opencv-python. 之后你应该有opencv。


推荐阅读