我使用Python 3和OpenCV 3.我想从网络摄像头获取相同大小的图像的人脸图像数据集。
这是我的代码。
import cv2
import numpy as np
faceDetect=cv2.CascadeClassifier('haarcascade_frontalface_default.xml');
cam=cv2.VideoCapture(0);
id=input('enter user id')
sampleNum=0;
while(True):
ret,img=cam.read();
resize_image = cv2.resize(img, (200,200), interpolation=cv2.INTER_CUBIC) # Resize to same size
gray=cv2.cvtColor(resize_image,cv2.COLOR_BGR2GRAY)
faces=faceDetect.detectMultiScale(gray,1.3,5);
for(x,y,w,h) in faces:
sampleNum=sampleNum+1
cv2.imwrite("dataSet/User."+str(id)+"."+str(sampleNum) + ".jpg", gray[y:y+h,x:x+w])
cv2.rectangle(resize_image,(x,y),(x+w, y+h), (0,255,0) , 2)
cv2.waitKey(100)
cv2.imshow("Face", resize_image);
cv2.waitKey(1)
if(sampleNum>20):
break;
cam.release()
cv2.destroyAllWindows()
我尝试将图像大小调整为200,200,但文件夹dataSet中的图像文件仍然是不同大小的宽度*高度像素。如何从网络摄像头获取相同尺寸图像的人脸图像数据集?