python 用opencv调用训练好的模型进行识别的方法

yipeiwu_com6年前Python基础

此程序为先调用opencv自带的人脸检测模型,检测到人脸后,再调用我自己训练好的模型去识别人脸,使用时更改模型地址即可

#!usr/bin/env python
import cv2
font=cv2.FONT_HERSHEY_SIMPLEX
cascade1 = cv2.CascadeClassifier("D:\\opencv249\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt_tree.xml")
cascade2 = cv2.CascadeClassifier("D:\\opencv249\\opencv\\sources\\data\\haarcascades\\xml.xml")
cap = cv2.VideoCapture(0)
while True:
 ret,frame = cap.read()
 gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
 rect = cascade1.detectMultiScale(gray,scaleFactor=1.3,minNeighbors=9,minSize=(50,50),flags = cv2.cv.CV_HAAR_SCALE_IMAGE)
 if not rect is (): 
  for x,y,z,w in rect:
   roiImg = gray[y:y+w,x:x+z]
   rect1 = cascade2.detectMultiScale(roiImg,scaleFactor=1.3,minNeighbors=9,minSize=(50,50),flags = cv2.cv.CV_HAAR_SCALE_IMAGE)
   if not rect1 is ():
    for (a,b,c,d) in rect1:
     print "rect",rect1
     cv2.putText(frame,'Chenym',(x,y), font, 2,(0,0,255),2)
     cv2.rectangle(frame,(x+a,y+b),(x+a+c,y+b+d),(0,0,255),2)
 cv2.imshow('frame',frame)
 if cv2.waitKey(1) &0xFF == ord('q'):
  break
cap.release()
cv2.destroyAllWindows()

以上这篇python 用opencv调用训练好的模型进行识别的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python为何不能用可变对象作为默认参数的值

Python为何不能用可变对象作为默认参数的值

先来看一道题目: >>> def func(numbers=[], num=1): ... numbers.append(num) ... return numbe...

跟老齐学Python之类的细节

这几天和几个朋友以各种途径讨论过OOP的相关问题,他们是:令狐虫、Frank、晋剑、小冯 大家对OOP有不同看法,所谓工程派和学院派看法不一致。从应用的角度看,工程派的观点是值得推荐的,...

python 多线程将大文件分开下载后在合并的实例

废话不多说了,上代码吧: import threading import requests import time import os class Mythread(thread...

Python中的Socket 与 ScoketServer 通信及遇到问题解决方法

Socket有一个缓冲区,缓冲区是一个流,先进先出,发送和取出的可自定义大小的,如果取出的数据未取完缓冲区,则可能存在数据怠慢。其中【recv(1024)】表示从缓冲区里取最大为1024...

Python中用sleep()方法操作时间的教程

 mktime()方法是localtime()反函数。它的参数是struct_time或全9元组,它返回一个浮点数,为了兼容时time()。 如果输入值不能表示为有效的时间,那...