1.显示图片
img导入图片的路径一定要正确,不能用中文名,反斜线,加后缀jpg,记得查看图片格式,如果不是jpg,要用画图工具重新存一下存成jpg,jpeg也是识别不出来的。
#1.导入库
import cv2
#2.加载图片
img = cv2.imread('E:/fig_data/yy_3.jpg')
#之前imshow一直报错说要显示长宽都大于零的,说明img没有读进去,路径出问题了!!!
#3.显示图片
cv2.imshow('chuangkou',img)
#4.暂停窗口
cv2.waitKey(0)
#5.关闭窗口
cv2.destroyAllWindows()
2.在图片里面检测人脸
#1.导入库
import cv2
#2.加载图片
img = cv2.imread('E:/fig_data/yy_2.jpg')
#3.加在人脸模型
face = cv2.CascadeClassifier('D:/python/anaconda/Anaconda/Library/etc/haarcascades/haarcascade_frontalface_default.xml')
#4.调整图片灰度(人脸识别没必要识别颜色,灰度图像提高性能)
gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
#5.检查人脸
faces = face.detectMultiScale(gray)
#6.标记人脸
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
#里面有参数,第一个是图片,第二个是坐标原点,第三个是识别大小,后面是颜色rgb,线宽
#7.显示图片
cv2.imshow('chuangkou',img)
#8.暂停窗口
cv2.waitKey(0)
#9.关闭窗口
cv2.destroyAllWindows()
3.调用摄像头
#1.导入库
import cv2
#2.打开摄像头
capture = cv2.VideoCapture(0)
#3.获取摄像头实时画面
while capture.isOpened():
#读取摄像头帧画面
rec,frame = capture.read()
#显示图片(渲染画面)
cv2.imshow('chuangkou',frame)
#暂停窗口
if cv2.waitKey(5)& 0xFF == ord('q'):#q退出视频
break
#4.释放资源
capture.release()
#5.关闭窗口
cv2.destroyAllWindows()
4.调用摄像头实现人脸检测
#1.导入库
import cv2
#2.加在人脸模型
face = cv2.CascadeClassifier('D:/python/anaconda/Anaconda/Library/etc/haarcascades/haarcascade_frontalface_default.xml')
#3.打开摄像头
capture = cv2.VideoCapture(0)
#4.获取摄像头实时画面
while capture.isOpened():
#读取摄像头帧画面
rec,frame = capture.read()
#图片灰度调节
gray = cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)
#检测人脸
faces = face.detectMultiScale(gray)
#标记人脸
for (x,y,w,h) in faces:
cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
#里面有参数,第一个是图片,第二个是坐标原点,第三个是识别大小,后面是颜色rgb,线宽
#框是圈的帧上面的frame上面的,不是gray上面的,所以写frame不写gray
#显示图片(渲染画面)
cv2.imshow('chuangkou',frame)
#暂停窗口
if cv2.waitKey(5)& 0xFF == ord('q'):#q退出视频
break
#5.释放资源
capture.release()
#6.关闭窗口
cv2.destroyAllWindows()