首页 > 编程知识 正文

人脸识别为什么用python开发(pythonopencv中文教程)

时间:2023-05-06 01:40:22 阅读:98424 作者:4718

下午搭建了OpenCV的Python环境和OpenCV的Python环境。所以迫不及待想体验opencv的人脸识别,如下。

基本知识

哈尔样的

哈尔式百科解读。一般来说,它可以作为面部特征。

哈尔特征值反映了图像灰度的变化。比如脸部的一些特征可以简单地用矩形特征来描述,比如:眼睛比脸颊深,鼻梁两侧比鼻梁深,嘴巴比周围的颜色深。

opencv api

要使用opencv,你必须首先知道它能做什么以及如何做。所以API的重要性就体现出来了。就本例而言,使用的功能很少,即普通的图像读取、灰度转换、图像显示和简单的图像编辑。

如下所示:

阅读图片

只需给出要操作的图片的路径。

导入cv2

image=cv2.imread(imagepath)

灰度转换

灰度转换的作用是降低转换成灰度的图像的计算强度。

导入cv2

gray=cv2.cvtColor(图像,cv2。颜色_BGR2GRAY)

绘制设计

opencv的优势之一是可以随意编辑和处理图片。

下面这个函数的最后一个参数指定了画笔的大小。

导入cv2

cv2 .矩形(图像,(x,y),(x w,y w),(0,255,0),2)

显示图像

编辑后的图像或者直接显示,或者保存到物理存储介质。

导入cv2

cv2.imshow('图像标题',图像)

获取人脸识别训练数据

看似复杂,其实是对面部特征的描述,这样在读取数据后,opencv就可以根据训练中的样本数据感知到读取图片上的特征,进而对图片进行人脸识别。

导入cv2

face_cascade=cv2。级联分类器。/haarcscade _ frontal face _ default . XML ')

网站中显示的xml文件是opencv在GitHub上共享的通用训练数据。我们可以直接使用。

培训数据参考地址:

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

人脸检测

说白了,就是根据训练数据识别新图片的过程。

导入cv2

#检测图片中的人脸

faces=face _ cascade.detectMultiScale多尺度(

格雷,

比例因子=1.15,

minNeighbors=5,

minSize=(5,5),

flags=cv2 . cv . cv _ HAAR _ SCALE _ IMAGE

)

我们可以任意指定内部参数的值,以实现不同精度的识别。返回值是opencv检测结果对图片的体现。

处理人脸检测的结果

在完成了刚才的人脸检测后,我们可以得到返回值进行进一步的处理。但这并不是说它会有多复杂,只是增加了一些特征值。

导入cv2

打印“找到{0}张脸!”。格式(镜头(面))

对于面:中的(x,y,w,h)

cv2 .矩形(图像,(x,y),(x w,y w),(0,255,0),2)

例子

有了刚才的基础,我们就可以完成一个简单的人脸识别的小例子。

图片材料

下图将作为我们的测试依据。

人脸检测码

# coding:utf-8

导入系统

重新加载(系统)

sys.setdefaultencoding('utf8 ')

# _ _作者__='真诚的香水'

# _ _日期__='2016/9/5 '

# __Desc__=人脸检测的小例子,圈出人脸。

导入cv2

#要检测的图像路径

imagepath=r '。/heat.jpg '

#获取训练好的人脸的参数数据,直接从GitHub使用默认值。

face_cascade=cv2。级联分类器。/haarcscade _ frontal face _ default . XML ')

#阅读图片

image=cv2.imread(imagepath)

gray=cv2.cvtColor(图像,cv2。颜色_BGR2GRAY)

#检测图片中的人脸

faces=face _ cascade.detectMultiScale多尺度(

格雷,

比例因子=1.15,

minNeighbors=5,

minSize=(5,5),

flags=cv2 . cv . cv _ HAAR _ SCALE _ IMAGE

)

打印“找到{0}张脸!”。格式(镜头(面))

对于面:中的(x,y,w,h)

# cv2 .矩形(图像,(x,y),(x w,y w),(0,255,0),2)

cv2.circle(image,((x x w)/2,(y y h)/2),w/2,(0,255,0),2)

cv2.imshow('查找面孔!',图像)

cv2.waitKey(0)

人脸检测结果

输出图片:

输出:

D:SoftwarePython2python.exe e :/代码/Python/数据构建器/opencv/演示版

找到了三张脸!

详情见案例参考:

https://my.oschina.net/chinesezhx/blog/520917

摘要

回过头来看,这个实验是对opencv的常用api的简单使用,重点是训练数据的使用和人脸检测的处理。

-结束-

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。