以下全部代码由pycharm实现
前言
接下来我们将使用opencv中的模块进行人脸识别的操作
提示:以下是本篇文章正文内容,下面案例可供参考
一、opencv是什么?
penCV(开源计算机视觉库)是在 BSD 许可下发布的,因此它可以免费用于学术和商业用途。
它具有 C++,Python 和 Java 接口,支持 Windows,Linux,Mac OS,iOS 和 Android。
OpenCV 专为提高计算效率而设计,专注于实时应用。该库以优化的 C/C++ 编写,可以利用多核处理。
通过 OpenCL 启用,它可以利用底层异构计算平台的硬件加速。
OpenCV 在全球范围内采用,拥有超过 4.7 万用户社区,估计下载量超过 1400 万。
用途范围从交互式艺术,到地雷检查,网上拼接地图或高级机器人。
二、下载库
两种方式:
1、在pycharm里面下载:
2、通过 cmd下载:
pip install opencv-contrib
在安装前要确保自己有numpy的包
没有可以通过cmd输入pip install numpy 进行安装
三、引入库
import cv2 as cv
四、对图像操作
首先我们读取图像:
img = cv.imread("yujinlong.png")
然后对我们的图像进行一个灰度的处理
gary = cv.cvtColor(z_img,cv.COLOR_BGR2GRAY)
然后找到我们的分类器
分类器一般都在我们python安装目录里面的cv2模块目录里面
大致是这个样子
找到分类器后我们
face_d = cv.CascadeClassifier(r"D:\xuexi2\python\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml")
然后使用detectMultiScale函数检测人脸:
face = face_d.detectMultiScale(gary)
接下来对人脸进行画框
for x,y,w,h in face:
cv.rectangle(z_img,(x,y),(x+w,y+h),color=(0,255,0),thickness=2)
cv.imshow("re",z_img)
四、对图像操作
按q退出并且释放缓存
while True:
if ord("q") == cv.waitKey(0):
break
#释放缓存
cv.destroyAllWindows()
五、出现的问题
1、出现以下问题说明我们的分类器的地址可能出现了错误
cv2.error: OpenCV(4.6.0-dev) D:\a\opencv-python\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'
总结
对opencv人脸识别的基本操作
本人笔记希望对你有用