🚀 作者 :“程序员梨子”
🚀 **文章简介 **:本篇文章主要是写了opencv的人脸检测、猫脸检测小程序。
🚀 **文章源码免费获取 : 为了感谢每一个关注我的小可爱💓每篇文章的项目源码都是无
偿分享滴💓👇
点这里蓝色这行字体自取,需要什么源码记得说标题名字哈!私信我也可!
🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬
OpenCV是时下最流行的基于C++的开源计算机视觉库,它功能丰富,函数众多,从最基本的读写
图片,到简单的图像处理(比如降噪滤波、边缘检测、图像变换、特征提取等),再到更加高级的
行人检测、人脸识别、文本识别等,尽皆包含。在OpenCV提供的函数的基础上,我们可以很方便
地开发自己的应用,实现自己的算法。总的来说,就是OpenCV非常强大。具体有多强大?那得用
了才知道。今天来浅浅的给大家来两个小项目叭——人脸检测and猫脸检测👇

利用OpenCV的Python接口实现人脸检测的流程如下:
读取图片
将图片转换为灰度模式,便于人脸检测
利用Haar特征检测图片中的人脸
绘制人脸的矩形区域
显示人脸检测后的图片
- # -*- coding: utf-8 -*-
- import cv2
- import logging
-
- # 设置日志
- logging.basicConfig(level = logging.INFO, format='%(asctime)s - %(levelname)s: %(message)s')
- logger = logging.getLogger(__name__)
-
- # 待检测的图片路径
- ImagePath = 'E://zhoujielun.jpg'
-
- # 读取图片
- logger.info('Reading image...')
- image = cv2.imread(ImagePath)
- # 把图片转换为灰度模式
- gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
-
- # 探测图片中的人脸
- logger.info('Detect faces...')
- # 获取训练好的人脸的参数数据,进行人脸检测
- face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')
- faces = face_cascade.detectMultiScale(gray,scaleFactor=1.15,minNeighbors=5,minSize=(3, 3))
-
- search_info = "Find %d face."%len(faces) if len(faces) <= 1 else "Find %d faces."%len(faces)
- logger.info(search_info)
-
- # 绘制人脸的矩形区域(红色边框)
- for (x, y, w, h) in faces:
- cv2.rectangle(image, (x,y), (x+w,y+h), (0,0,255), 2)
-
- # 显示图片
- cv2.imshow('Find faces!', image)
- cv2.waitKey(0)

可以看到人脸检测的效果还是不错的。
人脸检测、人脸识别是近来非常火的技术,那么,用来识别猫脸呢?只需要把之前代码中的模型文
件换成haarcascade_frontalface.xml即可。
- # -*- coding: utf-8 -*-
- import cv2
- import logging
-
- # 设置日志
- logging.basicConfig(level = logging.INFO, format='%(asctime)s - %(levelname)s: %(message)s')
- logger = logging.getLogger(__name__)
-
- # 待检测的图片路径
- ImagePath = 'E://cat.jpg'
-
- # 读取图片
- logger.info('Reading image...')
- image = cv2.imread(ImagePath)
- # 把图片转换为灰度模式
- gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
-
- # 探测图片中的人脸
- logger.info('Detect faces...')
- # 获取训练好的人脸的参数数据,进行人脸检测
- face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalcatface.xml')
- faces = face_cascade.detectMultiScale(gray,scaleFactor=1.15,minNeighbors=5,minSize=(3, 3))
-
- search_info = "Find %d face."%len(faces) if len(faces) <= 1 else "Find %d faces."%len(faces)
- logger.info(search_info)
-
- # 绘制人脸的矩形区域(红色边框)
- for (x, y, w, h) in faces:
- cv2.rectangle(image, (x,y), (x+w,y+h), (0,0,255), 2)
-
- # 显示图片
- cv2.imshow('Find faces!', image)
- cv2.waitKey(0)

怎么样,是不是感觉萌萌的?
本文主要介绍了OpenCV在人脸检测和猫脸检测方面的应用,并且给出了具体的Python代码。
那么,能检测人脸和猫脸,我们又能做些什么呢?其实,我们如果继续探究下去,可以做不少的事
情,比如结合深度学习的模型,比如CNN等,可以实现人脸识别啊,物体检测,自动给图像打标
签等,欢迎大家交流~
安啦!文章就写到这里,你们的支持是我最大的动力,记得三连哦!
关注小编获取更多精彩内容!记得点击传送门哈👇👇👇👇👇👇
记得三连哦! 如需打包好的完整源码+素材免费分享滴!!!传送门
