未定义“ CV_LOAD_IMAGE_GRAYSCALE” {PY}

Bio*_*ock 4 opencv

我正在尝试使用OpenCV和Python运行人脸识别程序。
我在stackoverflow上找到了此代码,但是主要问题是一个错误:

Traceback (most recent call last):
File "/Users/n1/Desktop/FaceDetection/face.py", line 8, in <module>
 gray = imread(fname, CV_LOAD_IMAGE_GRAYSCALE )
NameError: name 'CV_LOAD_IMAGE_GRAYSCALE' is not defined
Run Code Online (Sandbox Code Playgroud)

代码是这样的:

from cv2 import *
import numpy as np
face_cascade = CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = CascadeClassifier('haarcascade_eye.xml') 

fname='123.jpg'
img = imread(fname)
gray = imread(fname, CV_LOAD_IMAGE_GRAYSCALE ( 0) )
rows,cols = gray.shape
gray = np.array(gray, dtype='uint8')
faces = face_cascade.detectMultiScale(gray, 1.3, 5, 0)
print ('faces=', faces) 

for (x,y,w,h) in faces:
    rectangle(img, (x,y), ((x+w),(x+h)), (255,0,0), 2)
    roi_gray = gray[y:y+h, x:x+w]
    roi_color = img[y:y+h, x:x+w]
    eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey, ew, eh) in eyes:
    rectangle(roi_color, (x,y), ((x+w), (y+h)), (50, 50, 50), 3) 

imshow('eyes=%s' % (eyes,), roi_color)
imshow("img", img)
waitKey(0)
destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

ber*_*rak 9

不要问SO,学会帮助自己:

>>> import cv2
>>> help(cv2)
...
IMREAD_ANYCOLOR = 4
IMREAD_ANYDEPTH = 2
IMREAD_COLOR = 1
IMREAD_GRAYSCALE = 0   #that will be it ;)
IMREAD_LOAD_GDAL = 8
IMREAD_UNCHANGED = -1
...
VERSION
    3.0.0-dev
Run Code Online (Sandbox Code Playgroud)

(CV_LOAD_IMAGE_GRAYSCALE来自过时的[并且现在已删除] cv api)


lmi*_*lmh 5

在C ++的OpenCV 3.1中,您必须使用cv::ImreadModes::IMREAD_GRAYSCALE位于<opencv2/imgcodecs.hpp>