从安装python到使用opencv进行人脸检测
创始人
2024-01-31 12:11:19

一、python与PyCharm的安装

1.python主要有三种安装方式

参考自:2、Python安装 - 哔哩哔哩

Python安装教程(2022最新)_北京精神病康复中心的博客-CSDN博客

python下载官网:Python Releases for Windows | Python.org

1)在线安装:即执行安装后才透过网络下载python: Download Windows x86-64 web-based installer。

2)exe程序安装: Download Windows x86-64 executable installer。推荐使用这种安装方式,可以不用配置环境变量,一路next就可以了。

3)压缩文件解压缩安装: Download Windows x86-64 embeddable zip file。这种是直接下载整包的方式,下载下来后需要配置环境变量才能使用。

2.PyCharm的安装

安装完python我们需要下载编辑器,在这里推荐使用PyCharm

PyCharm下载官网:Other Versions - PyCharm

1)从官网下载exe文件

注意选择的exe版本最好是比自己下载的Python发布晚一点的预防造成版本问题。并且我们选择community版本进行下载,这样后面可以不用收费。

2)接下来也基本上是一路next就可以了。

可参考:【Python(二)】PyCharm安装教程_和光同其尘的博客-CSDN博客_pycharm安装教程

【Python(二)】PyCharm安装教程_和光同其尘的博客-CSDN博客_pycharm安装教程

后面需要配置一下interpreter,要不然运行的时候可能会出现一些问题,我在interpreter选择的exe是python安装的目录上的exe。

二、安装opencv

1.打开exe输入pip指令

pip install opencv-python

2.安装后的opencv的位置

一般是放在python文件夹下的Lib文件夹下的site-packages

C:/Users/Administrator/AppData/Local/Programs/Python/Python311/Lib/site-packages/

三、使用opencv检测图片和视频中的人脸

1.原理:级联分类器

 2.Haar级联分类器

1)可供检测的类型

 2)关键函数:detectMultiScale

 

 3.检测图片中的人脸和人眼的代码

需要准备一张图片命名为pic.jpg放到main.py所在的文件夹下

import cv2 as cv
import matplotlib.pyplot as plt#读取图片
img = cv.imread("pic.jpg")
#设置灰度图
gray=cv.cvtColor(img,cv.COLOR_RGB2GRAY)#加载识别人脸的分类器
face_cas=cv.CascadeClassifier("C:/Users/Administrator/AppData/Local/Programs/Python/Python311/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml")
#加载识别人眼的分类器
eyes_cas=cv.CascadeClassifier("C:/Users/Administrator/AppData/Local/Programs/Python/Python311/Lib/site-packages/cv2/data/haarcascade_eye.xml")#调用detectMultiScale识别人脸
faceRects=face_cas.detectMultiScale(gray,scaleFactor=1.15,minNeighbors=5,minSize=(5,5))
for faceRect in faceRects:#读取人脸信息x,y,w,h=faceRect#将人脸框出来#cv.rectangle(img,(x,y),(x+h,y+w),(0,255,0),3)cv.circle(img, (int((x + x + w) / 2), int((y + y + h) / 2)), int(w / 2), (0, 255, 0), 2)#在识别出的人脸中继续识别人眼roi_color=img[y:y+h,x:x+w]roi_gary = gray[y:y + h, x:x + w]# 调用detectMultiScale识别人眼eyes=eyes_cas.detectMultiScale(roi_gary,scaleFactor=1.15,minNeighbors=5,minSize=(3,3))#将人眼框出来,人眼有两个for(ex,ey,ew,eh) in eyes:cv.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),1)plt.figure(figsize=(8,6),dpi=100)
plt.imshow(img[:,:,::-1]),plt.title('result')
plt.xticks([]),plt.yticks([])
plt.show()

 4.检测视频中的人脸和代码

需要准备一段视频命名为movie.mp4放到main.py所在的文件夹下

import cv2 as cv
import matplotlib.pyplot as plt# 1.读取视频
cap = cv.VideoCapture("movie.mp4")
# 2.在每一帧数据中进行人脸识别
while(cap.isOpened()):ret, frame = cap.read()if frame is None:breaksmall_frame=[]#视频播放完毕退出窗口try:#将视频中的帧的大小调小一点,降低运算small_frame = cv.resize(frame, (0, 0), fx=0.5, fy=0.5)except:continueif ret==True:#转灰度图gray = cv.cvtColor(small_frame, cv.COLOR_BGR2GRAY)# 3.实例化OpenCV人脸识别的分类器  haarcascade_frontalface_default  haarcascade_frontalface_altface_cas = cv.CascadeClassifier( "C:/Users/Administrator/AppData/Local/Programs/Python/Python311/Lib/site-packages/cv2/data/haarcascade_frontalface_alt.xml" )# 4.调用识别人脸faceRects = face_cas.detectMultiScale(gray,scaleFactor=1.15,minNeighbors=3,minSize=(3,3))for faceRect in faceRects:x, y, w, h = faceRect# 框出人脸cv.rectangle(small_frame, (x, y), (x + h, y + w),(0,255,0), 3)cv.imshow("frame",small_frame)if cv.waitKey(1) & 0xFF == ord('q'):break
# 5. 释放资源
cap.release()
cv.destroyAllWindows()

相关内容

热门资讯

脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
怎么发微博故事 视频号怎么改回... 在被快手、头条、秒拍轮番定义之后,短视频还有哪些新的玩法?当今日头条孵化的抖音迅速蹿红,短视频领域的...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
怎么让男人兴奋 男人抵抗不了女... “男生对女人最初的崇拜,就是一声妈”有些东西分开挺好的,合起来就不行比如一个男人,又苏又大又强,简直...