皮皮克克 | OpenCV 案例【1】人脸检测

本文来源公众号“皮皮克克”,仅用于学术分享,侵权删,干货满满。

原文链接:https://mp.weixin.qq.com/s/iArHdVpvm8hCoWM4akruAA

说来惭愧,诸位!

最近一直没更新......

有诸多原因,但,最烦人的莫过于,

一直在加班搬砖

可曾想,今年5月31号那天晚上,为了赶项目进度,

我一个人通宵加班,真的是身心俱疲,力不从心!

第二天早上7点多才从公司出来,

那天早上,抬头看着旭日,只有一声轻叹:

真 ji er 累啊!

所以,请诸君见谅。

小编我虽晚必到。

前面的系列,讲的是 Shell 脚本相关案例,比较常用,倒也不难。

后面,小编准备新开一个系列,给大家带来OpenCV的实战案例,

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,由英特尔于1999年首次发布,现由社区维护。

通俗来讲,就是处理图片和视频的。

下面看个实际的案例,人脸检测。

一、环境准备

1,下载安装 anaconda

  • 官方地址:

https://www.anaconda.com/products/distribution

 

 

  • 双击下载的 .exe文件,安装即可。

  • 完成安装后,打开 Anaconda Prompt(或系统终端)测试

     

 

  • 切换到国内的镜像源

# 清华源(推荐)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes
  • 创建opencv所用的环境空间

conda create -n opencv_env python=3.10
  • 切换到opencv_env 环境空间

     

 

  • 下载 opencv所需的包

# 使用 conda 安装(优先)
conda install numpy pandas matplotlib

# 使用 pip 安装(conda 没有的包)
pip install opencv-python

 

2,Pycharm 引用conda环境

  • 打开Pycharm,创建个新项目,然后找到右下角的位置:

 

  • 点击箭头的齿轮,会有 "Add Python Interpreter",点进去

 

  • 选择 "Conda Environment",选择 "Existing Environment"

 

找到对应的 python.exe,和 conda.exe,就行了。

 

二、写代码

说实话,代码没啥好说的的,小编在代码里面都添加注释了,

诸君先看下:

"""
人脸检测
"""
import cv2

# 加载预训练的Haar级联分类器(正面人脸检测模型)
face_cascade = cv2.CascadeClassifier("./haarcascades/haarcascade_frontalface_default.xml")

# 读取图片
img = cv2.imread("./datas/images/kobe_image.jpg")
# 转为灰度图,Haar特征基于灰度图像计算,转换可提升检测效率
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 人脸检测核心函数
# scaleFactor=1.3:图像缩放比例(1.3表示每次缩小30%)
# minNeighbors=5:候选框保留阈值
# faces:检测到的人脸矩形列表,格式为(x, y, w, h)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

# 遍历所有检测到的人脸区域
# 在原图上绘制绿色矩形框(BGR颜色(0,255,0),线宽2像素)
for (x,y,w,h) in faces:
    # 画矩形
    cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2)

# 显示结果
cv2.imshow("img", img)
# 等待按键
cv2.waitKey(0)
# 关闭所有窗口
cv2.destroyAllWindows()

 

运行结果:

 

 

代码依赖

上述代码里面,主要用到了:haarcascade_frontalface_default.xml

haarcascade_frontalface_default.xml 是 OpenCV 提供的一个  预训练 Haar 级联分类器模型 ,专门用于检测图像或视频中的  正面人脸 。它是基于  Viola-Jones 算法 的传统目标检测方法,虽然不如深度学习模型(如 YOLO、SSD)精准,但计算量小、速度快,适合实时应用。

下载地址:

https://github.com/opencv/opencv/blob/master/data/haarcascades/

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值