【CSDN传疯了】史上最强Opencv神技——带你体会AI魅力,揭秘人脸检测识别与猫脸检测技术。

363 阅读4分钟

前言

🚀 作者 :“程序员木子”

🚀 **文章简介 **:本篇文章主要是写了使用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 |已有文章汇总 | 持续更新,直接看这篇就够了

(更多内容+源码都在文章汇总哦!!欢迎阅读~)