首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python分类器

Python分类器
EN

Stack Overflow用户
提问于 2018-03-28 20:15:19
回答 1查看 236关注 0票数 0

我试图结合两个脚本,以获得面部识别工作的实时视频饲料从我的笔记本网络摄像头。我有一个工作的opencv2脚本,与我的摄像头工作,以查看现场镜头,另一个是一个面部识别脚本与哈尔分类器上的jpeg静止图像。我正在使用Python3.6IDE,打开cv2。下面的脚本用于通过我的膝上型电脑网络摄像机观看实时提要。

代码语言:javascript
复制
import numpy as np
import cv2, time

video = cv2.VideoCapture(0)  
a = 0

while True:

    a = a + 1    
    check, frame = video.read()

    print(check)
    print(frame)

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow("Capturing", gray)
    cv2.waitKey(1)

    key = cv2.waitKey(1)    
    if key == ord('q'):
        break

print(a)

video.release()

我得到了这样一个脚本,它在脸周围画一个盒子,为带有静态.jpeg图像函数的haar分类器工作。我如何将这两个脚本与使用haar分类器在实时视频提要上进行面部识别结合起来呢?haar分类器XML和jpeg是我本地PC目录上的文件。

代码语言:javascript
复制
import cv2
import matplotlib.pyplot as plt
import time 



def detect_faces(f_cascade, colored_img, scaleFactor = 1.1):
    img_copy = colored_img.copy()          
    gray = cv2.cvtColor(img_copy, cv2.COLOR_BGR2GRAY)           
    faces = f_cascade.detectMultiScale(gray, scaleFactor=scaleFactor, minNeighbors=5);           
    for (x, y, w, h) in faces:
        cv2.rectangle(img_copy, (x, y), (x+w, y+h), (0, 255, 0), 2)               
    return img_copy



test2 = cv2.imread('C:/Python/opencv/sAndb.jpg')
haar_face_cascade = cv2.CascadeClassifier('C:/Python/opencv/opencv-master/opencv-master/data/haarcascades/haarcascade_frontalface_alt.xml')
faces_detected_img = detect_faces(haar_face_cascade, test2)
cv2.imshow('Faces', faces_detected_img)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-28 22:01:14

试试这个:

代码语言:javascript
复制
import numpy as np
import cv2, time
import matplotlib.pyplot as plt

haar_face_cascade = cv2.CascadeClassifier('C:/Python/opencv/opencv-master/opencv-master/data/haarcascades/haarcascade_frontalface_alt.xml')
video = cv2.VideoCapture(0)  
a = 0

while True:

    a = a + 1    
    check, frame = video.read()

    print(check)
    print(frame)

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces = f_cascade.detectMultiScale(gray, scaleFactor=scaleFactor, minNeighbors=5);
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 0, 255), 2)


    cv2.imshow("Face Detector", frame)
    cv2.waitKey(1)

    key = cv2.waitKey(1)    
    if key == ord('q'):
        break

print(a)

video.release()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49543407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档