【问题标题】:Opencv in python gives me a AttributeErrorpython中的Opencv给了我一个AttributeError
【发布时间】:2019-08-12 20:40:46
【问题描述】:

我试图让 opencv 为人脸识别程序工作。我的网络摄像头正在工作,因为我使用 cv2.VideoCapture 对其进行了测试并弹出了窗口,然后当我添加下一步使用 cv2.cvtcolor(frame, cv2.COLOR_BGR2GRAY) 将图像变为灰色时,我收到错误消息,提示 AttributeError:模块 'cv2.cv2' 没有属性 'cvtcolor。我尝试使用 pip3 install opencv-contrib-python 卸载并重新安装 opencv。我不确定我在这里做错了什么,我的猜测可能是我的文件不在写入位置,但我不确定它们需要放在哪里

当我使用此代码时,我的网络摄像头窗口会弹出并且工作正常。 Working code

import os 
import PIL
import cv2
import numpy


face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 
"haarcascade_frontalface_alt2.xml")

cap = cv2.VideoCapture(0)

while(True):
    #frame by frame
    ret, frame = cap.read()
    gray = cv2.cvtcolor(frame, cv2.COLOR_BGR2GRAY)
   faces = face_cascade.detectMultiscale(gray, scaleFactor=1.5, 
minNeighbors=5)

    #display frame
    cv2.imshow('frame',frame)
    if cv2.waitKey(20) & 0xFF == ord('q'):
        break


        #when done relase cap


cap.release()
cv2.destroyAllWindows()

Traceback(最近一次调用最后一次): 文件“c:/Users/Nick Miller/all_for_vs/Code/facerecg.py”,第 14 行,在 灰色 = cv2.cvtcolor(帧,cv2.COLOR_BGR2GRAY) AttributeError:模块“cv2.cv2”没有属性“cvtcolor” [WARN:0] 终止异步回调

【问题讨论】:

    标签: python-3.x opencv imshow


    【解决方案1】:

    改变 cv2.cvtcolor(frame, cv2.COLOR_BGR2GRAY)cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    另外,将faces = face_cascade.detectMultiscale(gray,scaleFactor=1.5,minNeighbors=5) 更改为faces = face_cascade.detectMultiScale(gray,scaleFactor=1.5,minNeighbors=5)

    【讨论】:

    • 是的,我改变了,但现在我在 detectMultiscale 上有一个错误
    • 检查更新的答案。它将是face_cascade.detectMultiScale
    猜你喜欢
    • 2015-12-26
    • 2020-02-03
    • 2020-01-08
    • 2014-05-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    相关资源
    最近更新 更多