宋恺 发表于 2020-8-10 17:16:47

python实现摄像头实时人脸检测

本帖最后由 宋恺 于 2020-8-10 17:22 编辑

python实现摄像头实时人脸检测
此程序需要安装opencv
可以直接在cmd中输入:
pip install opencv-python
但因为服务器在国外,所以会很慢,建议在cmd中输入:
python -m pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
一劳永逸的办法:
https://fishc.com.cn/thread-143635-1-1.html

static/image/hrline/line7.png
代码:
import cv2


def CatchUsbVideo(window_name):
cv2.namedWindow(window_name)

#视频来源,来自USB摄像头
cap = cv2.VideoCapture(0)      

#告诉OpenCV使用人脸识别分类器
classfier = cv2.CascadeClassifier(r"E:\python\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml")#文件haarcascade_frontalface_default.xml的路径

#识别出人脸后要画的边框的颜色,RGB格式
color = (0, 255, 0)
   
while cap.isOpened():
    ok, frame = cap.read() #读取一帧数据
    if not ok:      
      break   #将当前帧转换成灰度图像
    grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)         
   
    #人脸检测,1.2和2分别为图片缩放比例和需要检测的有效点数
    faceRects = classfier.detectMultiScale(grey, scaleFactor = 1.2, minNeighbors = 5, minSize = (32, 32))
    if len(faceRects) > 0:      #大于0则检测到人脸                  
      for faceRect in faceRects: #单独框出每一张人脸
      x, y, w, h = faceRect   
      cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 2)
            
    #显示图像
    cv2.imshow(window_name, frame)   
    c = cv2.waitKey(10)
   

#释放摄像头
cap.release()
cv2.destroyAllWindows()

CatchUsbVideo("")

关于haarcascade_frontalface_default.xml文件的路径,请改为你自己电脑的路径,此文件在:
安装python的盘\安装python的文件夹\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml

zltzlt 发表于 2020-8-10 17:19:14

这不就是小甲鱼的代码?

宋恺 发表于 2020-8-11 10:18:38

zltzlt 发表于 2020-8-10 17:19
这不就是小甲鱼的代码?

不是吧{:10_277:}
我自己写的。
页: [1]
查看完整版本: python实现摄像头实时人脸检测