小强学Python+OpenCV之-1.0开篇

本教程通过Python和OpenCV实现人脸识别功能,介绍了如何加载和显示图像、使用Haar级联分类器检测人脸,并在图像中标记检测到的人脸区域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本博客最早发表于简书《小强学python+opencv专题》。但简书不支持LaTeX公式。所以,将博客同步更新到优快云,以尝试一下此功能。目前感觉:
1. 优快云的LaTeX功能还有点弱,比不上作业部落,但作业部落社交性差一些。
2. 优快云博客发表还要审核,时长不定,比较郁闷。
3. 简书的图片直接拖拽上传功能比较棒,比优快云省了好几个步骤。

小强学AI第一部《小强学python+opencv》

写在前面:

有没有想过使用Python + OpenCV来实现人脸识别?
想想就有点小兴奋吧。
小强也是不久前才了解到可以使用Python + OpenCV进行图像处理。觉得有趣就想学习一下。
在这里,把我学到的小知识记录一下,也为了自己以后方便查看。
也希望有相同兴趣的同学搭个伴,一起学习。更希望得到大牛们的指点和鼓励。

完成此课后,我设置的终极目标有下面几个:

  1. 实现停车场的车牌识别系统,并到天桥上去做实验
  2. 手势识别?
  3. 道路标线识别?自动驾驶?
  4. 标志图形识别?跟踪?四轴飞行器?
  5. ……发挥想像,一切和图像识别有关的东东
  6. Deep learning?

——————————————————华丽的分割线———————————————————

下面进入正题。

编辑一个python脚本,取名为face_detect.py
键入以下内容并保存。

# 导入opencv库
import cv2

# 加载图像
image = cv2.imread("messi.jpg")

# 显示我们的原始图像到屏幕上
cv2.imshow("Faces", image)

# 等待键盘输出
cv2.waitKey(0)

# 将图像转成灰度图像
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

# 加载人脸分类检测器(这个分类检测器可以在opencv的安装路径xxx/OpenCV/haarcascade下找到)
detector =cv2.CascadeClassifier("haarcascade_frontalface_default.xml")

# 识别人脸,得到人脸所在的矩形区域(可能会得到多个人脸,所以这里是一个list)
rects = detector.detectMultiScale(gray,scaleFactor=1.05, minNeighbors=7,
         minSize=(30,30), flags=cv2.cv.CV_HAAR_SCALE_IMAGE)

# 遍历list中每个识别到的人脸区域,并在原始图像上沿该区域的边界画一个颜色为绿色、线宽为2个像素的边框
for (x, y, w, h) in rects:
         cv2.rectangle(image,(x, y), (x + w, y + h), (0, 255, 0), 2)

# 将图像显示在屏幕上,
cv2.imshow("Faces", image)

# 等待键盘输出
cv2.waitKey(0)

保存之后,在终端中执行python detect_faces.py
首先显示的是我们的原始图像。
这里写图片描述

此时,按上键盘上的任意按键。

奇迹发生了。人脸识别出来了。
这里写图片描述

是不是觉得很有趣?

话说回来。我们的路还长。这里只是给大家一个印象-好玩儿。毕竟兴趣才是最好的老师。

下面我会按部就班,完成以下内容(会慢慢补充):

1.1. 图像的加载,显示和保存
1.2. 图像知识基础
1.3. 绘图
1.4. 基本图像处理
1.4.1 平移、旋转、缩放、翻转-之理论
1.4.2 裁剪
1.4.3 算术运算
1.4.4 位运算
1.4.5 掩膜(mask)
1.4.6 通道分离及合并
1.5. 内核(kernel)
1.6. 形态学图像处理(morphological operations)
1.7. 平滑模糊(smoothing and blurring)
1.8. 照明和颜色空间
1.9. 阈值
1.10. 梯度和边缘检测
a) 渐变
b) 边缘检测
1.11. 轮廓
a) 查找和绘制轮廓
b) 简单轮廓特性
c) 高级轮廓特性
d) 轮廓逼近
e) 轮廓排序
1.2. 柱状图
1.3. 连通区域标记

2.1. 什么是物体探测
a) 物体探测介绍
b) 模板匹配
2.2 物体探测
a) 安装dlib
b) 物体探测
2.3 ……

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值