系统开发环境
- Windows11
- Python 3.8
- Pycharm 2021.3 社区版
所需环境库
- numpy==1.22.1
- opencv-contrib-python==4.5.5.62
- opencv-python==4.5.5.62
安装环境库
直接使用 pip 安装即可,使用 openCV 进行开发建议使用低版本 Python 不容易遇到各种奇怪的问题,Windows 系统可以安装多版本 Python,注意在安装时不要勾选添加到 Path 即可,在创建虚拟环境时,直接使用不同版本的解释器即可创建。 
代码实现
import cv2
import numpy as np
faceCascade = cv2.CascadeClassifier(
r"C:\Users\TOM\.virtualenvs\smart-home\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml")
eyesCascade = cv2.CascadeClassifier(
r"C:\Users\TOM\.virtualenvs\smart-home\Lib\site-packages\cv2\data\haarcascade_eye.xml")
cap = cv2.VideoCapture(0)
flag = True
while flag:
flag, img = cap.read()
img = cv2.flip(img, 1)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.2,
minNeighbors=5,
minSize=(32,32)
)
for (x, y, w, h) in faces:
fac_gray = gray[y: (y + h), x: (x + w)]
result = []
eyes = eyesCascade.detectMultiScale(fac_gray, 1.3, 2)
for (ex, ey, ew, eh) in eyes:
result.append((x + ex, y + ey, ew, eh))
for(x, y, w, h) in faces:
cv2.rectangle(img, (x,y), (x+w, y+h), (0,255,0), 2)
cv2.imshow('video', img)
hot_key = cv2.waitKey(1)
if hot_key == 27:
break
cap.release()
cv2.destroyWindow()
这里需要注意,分类器的 xml 文件一般在 openCV 库安装目录 cv2 的 data 文件夹内,找不到路径的可以安装 everything 用 cv2 作为关键字进行检索。   将代码中的路径替换为你自己的路径即可
实现效果

后续工作计划
参考网址:
代码参考 图像翻转
|