python学习中,做个小实验熟悉下语句。实验效果是通过本机摄像头实时采集图像,并将人脸区域打码。(这个人脸识别文件是识别正脸的,面部要正对摄像头)
以杰尼龟为例,将其头部打码。。。。
在执行代码前,要确认是否安装了opencv和numpy的库
尚未安装的话,在命令行中输入pip install numpy,pip install opencv-python进行安装
另外一个可能会遇见的问题,找不到这个人脸识别文件。
遇到这个问题时,可以在安装opencv库后,在python根目录下找到:
C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Lib\site-
packages\cv2\data
代码如下:
import cv2 import numpy as np if __name__ == '__main__': cap = cv2.VideoCapture
(0) #打开本机摄像头 while True: flag,frame = cap.read() if not flag: #未获取图像则跳出循环 break
gray= cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #灰度化 face_cascade = cv2.
CascadeClassifier('haarcascade_frontalface_default.xml') #人脸识别文件 faces =
face_cascade.detectMultiScale(gray, scaleFactor=1.05, minNeighbors=30) for x, y,
w, h in faces: #frame = cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255,
0), 3) #框选人脸区域 face = frame[y:y+h , x:x+w] #打码 face = face[::15 ,::15] face = np
.repeat(face,15,axis = 0) face = np.repeat(face,15,axis = 1) frame[ y:y+h , x:x+
w] = face[:h ,:w] cv2.imshow("image", frame) key = cv2.waitKey(1000//24) if key
== ord('q'): #按q退出 break cv2.destroyAllWindows() cap.release()