1.python camera 打开
#!/usr/bin/python
import cv2
cap = cv2.VideoCapture(0)
while True:
success,img = cap.read()
cv2.imshow('img',img)
k = cv2.waitKey(1)
if k==27:
break;
cap.release()
2.人脸 检测
#!/usr/bin/python
import cv2
import numpy as np
#打开摄像头,编号 0,默认从 0 开始
cap = cv2.VideoCapture(0)
#分类文件
classifier=cv2.CascadeClassifier("/home/leger/opencvface/haarcascade_frontalface_alt2.xml")
#循坏
while True:
#从cap 对象中,读取数据,返回给 success,frame , (frame 就是一帧图像)
success,frame = cap.read()
#图像大小
size = frame.shape[:2]
#创建图像(大小: size, 类型: float16 描述数组元素的类型)
img=np.zeros(size,dtype=np.float16)
#颜色转换(从BGR --> GRAY) 灰度图
img=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
#直方图
cv2.equalizeHist(img,img)
#除数
divisor=8
h,w=size
#最小
minSize=(int(w/divisor),int(h/divisor))
#将图像放入 检测函数,返回人脸框
faceRects=classifier.detectMultiScale(img,1.2,2,cv2.CASCADE_SCALE_IMAGE,minSize)
#如果检测到人脸, 画框...
if len(faceRects) >0:
#可能有几个人脸,用for循坏
for faceRect in faceRects:
x,y,w,h = faceRect
cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0))#frame 图像,(x,y) 坐标, (长,宽) (框的颜色)
#该图像显示在face上,(给窗口命名为face)
cv2.imshow("face",frame)
#按下 esc 键,该程序退出
k=cv2.waitKey(1)
if k==27:
break;
haarcascade_frontalface_alt2.xml 下载地址:
https://pan.baidu.com/s/1pnF5vQqBCiKkyXl7rlZfiA
提取: 0o0p