前言
🚀 作者 :“程序员木子”
🚀 **文章简介 **:本篇文章主要是写了使用opencv写的简单的人脸识别小系统哦!
🚀 **文章源码免费获取 : 为了感谢每一个关注我的小可爱💓每篇文章的项目源码都是无
偿分享滴💓👇👇
点这里蓝色这行字体自取,需要什么源码记得说标题名字哈!私信我也可!
🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬
正文
OpenCV是时下最流行的基于C++的开源计算机视觉库,它功能丰富,函数众多,从最基本的读写
图片,到简单的图像处理(比如降噪滤波、边缘检测、图像变换、特征提取等),再到更加高级的
行人检测、人脸识别、文本识别等,尽皆包含。在OpenCV提供的函数的基础上,我们可以很方便
地开发自己的应用,实现自己的算法。总的来说,就是OpenCV非常强大。具体有多强大?那得用
了才知道。今天来浅浅的给大家来两个小项目叭——人脸检测and猫脸检测👇
编辑
一、人脸检测
1)实现思路
利用OpenCV的Python接口实现人脸检测的流程如下:
-
读取图片
-
将图片转换为灰度模式,便于人脸检测
-
利用Haar特征检测图片中的人脸
-
绘制人脸的矩形区域
-
显示人脸检测后的图片
2)代码展示
# -*- 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)
3)效果展示
编辑
可以看到人脸检测的效果还是不错的。
二、猫脸检测
1)实现思路
人脸检测、人脸识别是近来非常火的技术,那么,用来识别猫脸呢?只需要把之前代码中的模型文
件换成haarcascade_frontalface.xml即可。
2)代码实现
# -*- 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)
3)效果展示
编辑
怎么样,是不是感觉萌萌的?
总结
本文主要介绍了OpenCV在人脸检测和猫脸检测方面的应用,并且给出了具体的Python代码。
那么,能检测人脸和猫脸,我们又能做些什么呢?其实,我们如果继续探究下去,可以做不少的事
情,比如结合深度学习的模型,比如CNN等,可以实现人脸识别啊,物体检测,自动给图像打标
签等,欢迎大家交流~
安啦!文章就写到这里,你们的支持是我最大的动力,记得三连哦!
关注小编获取更多精彩内容!记得点击传送门哈👇👇👇👇👇👇
记得三连哦! 如需打包好的完整源码+素材免费分享滴!!
完整的源码💓免费自取👇👇
点这里蓝色这行字体自取,需要什么源码记得说标题名字哈!私信我也可!
🔨推荐往期文章——
项目1.0《小蜜蜂历险记》
【Pygame实战】强烈推荐:教你用百行代码编写一款《小蜜蜂历险记》不信?来看看(玩儿嗨了~)
项目1.1 扑克牌游戏
【Pygame实战】打扑克牌嘛?赢了输了?这款打牌游戏,竟让我废寝忘食。
项目1.2 英文单词猜猜看小游戏
【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)
项目8.3 泡泡机游戏
【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~
🎁文章汇总——
Python文章合集 | (入门到实战、游戏、Turtle、案例等)
(文章汇总还有更多你案例等你来学习啦~源码找我即可免费!)
🎄文章汇总——
项目1.0 Python—2021 |已有文章汇总 | 持续更新,直接看这篇就够了
(更多内容+源码都在文章汇总哦!!欢迎阅读~)