使用的模块:
python-opencv(cv2)
python-opencv(cv2)
Opencv(Open source computer vision) 是一个python库,可帮助我们解决计算机视觉问题。
下载python-opencv(cv2)
通用方式:pip install python-opencv
Pycharm用户:Pycharm用户可以从项目解释器下载此模块。
在这里,我们将检测个人的脸部和眼睛。为此,我们使用系统的网络摄像头和XML文件来检测面部和眼睛。我们将在帧中检测到面部,然后将眼睛插入面部,因此我们将进入面部坐标并检测眼睛,并在检测到的面部和眼睛上绘制矩形。
与面部和眼睛检测相关的功能
cv2.CascadeClassifier(“ <用于检测的xml文件>”):此函数用于获取面部和眼睛的提取物,以及如何检测它们。
cv2.Videocapture():这是用于通过我们系统的网络摄像头进行视频捕获。
<面部或眼睛提取物> .detectmultiscale(<灰度图像>,1.3,5):检测帧中的面部或眼睛。
cv2.rectangle(<我们要在其上放置矩形的框架>,(<开始位置>,<结束位置>,(<颜色>),厚度= <边框的厚度>)
注意:面部和眼睛的检测将处于灰度模式。
用于面部和眼睛检测的XML文件的链接为:
人脸: https : //github.com/abhinav0606/Face-and-Eyes-Tracker/blob/master/face.xml
眼睛: https : //github.com/abhinav0606/Face-and-Eyes-Tracker/blob/master/eye.xml
# 导入模块 import cv2 # 现在我们有了haarcascades文件 # 检测脸部和眼睛检测脸部 faces=cv2.CascadeClassifier("face.xml") # 侦测眼睛 eyes=cv2.CascadeClassifier("eye.xml") # 通过网络摄像头捕获帧 capture=cv2.VideoCapture(0) # 现在运行网络摄像头的循环 while True: # 阅读网络摄像头 ret,frame=capture.read() # 现在脸在框架中 # 检测是通过灰度框完成的 gray_frame=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) face=faces.detectMultiScale(gray_frame,1.3,5) # 现在进入面部及其位置 for (x,y,w,h) in face: # 在脸上绘制矩形 cv2.rectangle(frame,(x,y),(x+w,y+h),(0,0,255),thickness=4) # 现在眼睛在脸上 # 所以我们必须将脸框设为灰色 gray_face=gray_frame[y:y+h,x:x+w] # 使颜色也变脸 color_face=frame[y:y+h,x:x+w] # 检查这只脸上的眼睛 eye=eyes.detectMultiScale(gray_face,1.3,5) # 以其位置进入眼睛 for (a,b,c,d) in eye: # 我们必须在 # 彩色的脸 cv2.rectangle(color_face,(a,b),(a+c,b+d),(0,255,0),thickness=4) # 显示框架 cv2.imshow("Abhinav's Frame",frame) if cv2.waitKey(1)==13: break # 结束循环后,释放框架capture.release()cv2.destroyAllWindows()
运行程序,打开电脑摄像头,即可查看和输出,人脸和眼睛检测图像