OpenCV自带训练器和检测器。也可以使用OpenCV自己构建,训练一个分类器检测物体(飞机坦克等等) OpenCV包含很多已经训练好的分类器:面部、眼睛、微笑等。 创建一个面部和眼部检测器
加载需要的XML分类器,以灰度格式加载输入图像或视频。在图像中检测面部,一旦检测到面部就返回面部所在的矩形区域Rect(x,y,w,h),然后对此矩形区域创建一个ROI在其中进行眼部检测。 #coding=utf-8 import cv2 import numpy as np face_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml') eye_cascade=cv2.CascadeClassifier('haarcascade_eye.xml') img=cv2.imread('./image2/123.jpg') gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #cv2.CascadeClassifier.detectMultiScale(image,scaleFactor,minNeighbors,flags,minSize,maxSize) faces=face_cascade.detectMultiScale(gray,1,15) for (x,y,w,h) in faces: img=cv2.rectangle(img,(x,y),(x+w,y+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: cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWindows()