opencv3.1 + python3.4
第一回合(抄代码,可实现):人脸识别涉及一个级联表,目前能力还无法理解。
流程:1.读取图像---2.转换为灰度图---3.创建级联表---4.对灰度图使用级联表方法过滤---5.迭代得到的结果依次标记出来---6.保存图像
完整代码:
import cv2 #读取图片 img = cv2.imread(‘5.jpg‘) #转化为灰度图 gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #特征级联表 face_cascade = cv2.CascadeClassifier(r‘haarcascade_frontalface_default.xml‘) # print(type(face_cascade)) #<class ‘cv2.CascadeClassifier‘> #多尺寸检测,返回列表 # print(face) #[[1947 2275 374 374].... face = face_cascade.detectMultiScale( gray,1.3,5 ) print(‘发现{0}个脸‘.format(len(face))) for (x,y,w,h) in face: #(图像对象,圆心,半径,颜色,封闭?) cv2.circle(img,((x+x+w)//2,(y+y+h)//2),w//2,(0,255,0),-1) #保存图像 cv2.imwrite(‘14Peoele.jpg‘,img) #显示图像 cv2.imshow(‘gray‘,img) #防止闪屏 cv2.waitKey(0)
注意:1.python3中除法的整数用“//”
2.识别跟图像像素有关,像素大,识别度高。
结果:
低像素:
高像素:
时间: 2024-10-11 12:25:22