我在做视频眼睛识别时,使用haarcascade_eye_tree_eyeglasses.xml级联分类器识别眼睛时,总会出现将鼻孔,嘴巴等类似椭圆形的物体识别成眼睛,且错误率相当高,经过改进之后的算法思路大致如下:
1、先通过haarcascade_frontalface_default.xml级联分类器进行人脸识别;
2、创立掩模
3、将掩模的x方向设为与脸同宽,y方向1/4h到1/2h之间的区域设为纯白
4、将掩模与原图像做与运算,得到只显示眼睛部位的视频
5、对视频读取的帧用haarcascade_eye_tree_eyeglasses.xml进行眼睛识别
通过以上方法,在视频状态下可以准确的对眼睛进行识别,不会出现是被错误。
源代码如下:
import cv2
import numpy as np
cap=cv2.VideoCapture(0,cv2.CAP_DSHOW) #打开摄像头
while(cap.isOpened()): #判断摄像头是否被打开
ret,frame=cap.read() #读取