人脸识别

一、生成人脸识别数据

这里需要一些包含不同表情的图像,但是,必须确保样本图像满足如下条件:

  • 图像是灰度格式,后缀名为.pgm
  • 图像形状为正方形
  • 图像大小要一样(eg. 200*200)
import cv2 as cv
import os

VIDEO_PATH = 'D:/Temp/python_project/test_data/video'
PGM_PATH = "D:/Temp/python_project/opencv/pgm"

def generate():
    count = 0
    # Here is getting sample images from 4 videos. You can also get sample images 
    # from camera directly by using cv.VideoCapture(0) .
    for videoName in ['nod.mp4', 'shaking_head.mp4', 'blink.mp4', 'smile.mp4']:
        print(videoName)
        camera = cv.VideoCapture(os.path.join(VIDEO_PATH, videoName))
        while (True):
            ret, frame = camera.read()
            frame = cv.flip(frame, 1)
            if frame is None:
                break
            else:
                rows, cols, channels = frame.shape
                M = cv.getRotationMatrix2D(((cols - 1) / 2.0, (rows - 1) / 2), 270, 1)
                img = cv.warpAffine(frame, M, (cols, rows))

                face_cascade = cv.CascadeClassifier('D:/Temp/python_project/opencv/cascades/haarcascade_frontalface_default.xml')
                gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
                faces = face_cascade.detectMultiScale(gray, 1.3, 5, minSize=(450, 450))
                for (x,y,w,h) in faces:
                    img = cv.rectangle(img, (x,y), (x+w,y+h), (255,0,0), 2)
                    f = cv.resize(gray[y:y+h, x:x+w], (200,200))
                    cv.imwrite(os.path.join(PGM_PATH, '%s.pgm') % str(count), f)
                    count += 1

                cv.namedWindow('Face detected')
            
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值