cv2没有属性data。

3

这段代码来自一本教授OpenCV的书籍。我运行了代码,但总是出现错误。

import cv2 
casc_path = cv2.data.haarcascades + "haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(casc_path)
faceCascade = cv2.CascadeClassifier(casc_path)
faces = faceCascade.detectMultiScale(image, scaleFactor=1.1, minNeighbors=5, minSize=(30,30), flags = cv2.CASCADE_SCALE_IMAGE)
imgheight=image.shape[0]
imgwidth=image.shape[1] 
cv2.rectangle(image, (10,imgheight-20), (110,imgheight), (0,0,0), -1)
cv2.putText(image,"Find " + str(len(faces)) + " face!", (10,imgheight-5), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255,255,255), 2)
for (x,y,w,h) in faces:
    cv2.rectangle(image,(x,y),(x+w, y+h),(128,255,0),2)

cv2.namedWindow("facedetect")
cv2.imshow("facedetect", image)
cv2.waitKey(0)  
cv2.destroyWindow("facedetect")

错误就在这里。

File "K:/pyCharm_object/OpevCV.py", line 2, in <module>
casc_path = cv2.data.harrcascades + "harrcascade_frontalface_default.xml"
AttributeError: module 'cv2' has no attribute 'data'

1
或者可以通过pip install opencv-contrib-python --upgrade进行安装。 - Ruli
你使用的是哪个版本的OpenCV?我手头有v4.1.1,并且它确实包含了cv2.data.haarcascades - Christoph Rackwitz
问题并不在于需要贡献。并非所有的导入错误都是由同样的原因引起的。 - Christoph Rackwitz
4个回答

4

3
pip install opencv-contrib-python --upgrade 

正如评论中@Ruli所建议的那样,已经为我解决了这个问题。


-1

只需在文件浏览器中搜索haarcascade_frontalface_default.xml的位置。然后复制所需xml文件的路径并以原始形式粘贴路径:

casc_path = (r"**your path**\haarcascade_frontalface_default.xml")

例子:

casc_path = (r"C:\Users\User_name\miniconda3\pkgs\libopencv-4.5.3-py39h4b6fd43_5\Library\etc\haarcascades\haarcascade_frontalface_default.xml")

这对我有用。:)


-1
你对你安装的openCV包有信心吗?如果你安装了opencv-contrib-python包,就不应该看到那个错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接