【问题标题】:How to get full head image from haar cascade如何从 haar 级联中获取完整的头部图像
【发布时间】:2018-07-17 15:11:45
【问题描述】:

我使用以下代码使用 Haar 级联分类器捕获人脸,但仍未获得完整的头部图像

from imutils.video import WebcamVideoStream
import os
import time
from datetime import datetime
from imutils.video import FPS
import cv2
cascadePath = "/home/pi/opencv-3.3.0/data/haarcascades/haarcascade_frontalface_default.xml"
eye_cascade = cv2.CascadeClassifier('/home/pi/opencv-3.3.0/data/haarcascades/haarcascade_eye.xml')
faceCascade = cv2.CascadeClassifier(cascadePath);

fn = input('Enter your Folder name: ')
os.system("mkdir "+fn)

vs = WebcamVideoStream(src=0).start()

while 1:
    time.sleep(0.05)
    frame = vs.read()
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    faces = faceCascade.detectMultiScale(gray, 1.1, 6)
    for (x,y,w,h) in faces:
        cv2.imwrite(fn+"/"+ datetime.now().strftime("%H:%M:%S.%f") + ".jpg", gray[y:y+h+30,x:x+w+20])
    cv2.imshow('frame',frame)
    key = cv2.waitKey(1) & 0xFF

【问题讨论】:

    标签: python opencv haar-classifier


    【解决方案1】:

    为了捕捉头部,您还需要减少开始裁剪面部的初始点。

    在您的代码中,您使用了gray[y:y+h+30,x:x+w+20]

    • y 考虑了裁剪后的脸的高度。这是您需要减少初始裁剪点的地方。
    • x 表示不需要更改的脸的宽度。

    结论:将cv2.imwrite()内第22行改为gray[y-20:y+h, x:x+w]

    【讨论】:

      猜你喜欢
      • 2017-03-21
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 2014-06-28
      • 1970-01-01
      • 2021-09-12
      相关资源
      最近更新 更多