文章内容
:
1、windows 环境下安装 OpenCV 机器视觉环境搭建;
2、基于通过Python+OpenCV
调用手机摄像头并实现人脸检测识别。
主要介绍使用 pip 安装 OpenCV(使用.whl文件安装)。网上还有很多安装教程,比如:windows环境下的Anaconda安装与OpenCV机器视觉环境搭建、在Pycharm的环境下安装OpenCV
注意
:这里需要注意版本对应,由于我的电脑为 64bit 系统,且安装的 Python 是 3.8 版本的,所以,我选择其中的“opencv_python-4.5.3-cp38-cp38-win_amd64.whl
”文件进行下载。
pip install opencv_python-4.5.3-cp38-cp38-win_amd64.whl
Spyder 的安装涉及到 Python 环境的整体配置,没有的可以可以参考我的另一条博文:Python环境资源配置,最好建立好整个环境。
mport cv2
img = cv2.imread("E:/Pictures/cat.jpg", 1)
cv2.imshow("1", img)
cv2.waitKey()
注意
:代码第二行中的目录位置是自己电脑中的一张图片位置,这里我用的是我电脑中的 cat.jpg 文件。
注意
:此时我的电脑连接这手机热点,也可以手机跟电脑连接在同一个 WiFi 下,使得用局域网地址获取手机摄像头。
import cv2 as cv
#读取视频信息。
cap = cv.VideoCapture("http://admin:[email protected]:8081/") #@前为账号密码,@后为ip地址
face_xml = cv.CascadeClassifier("haarcascade_frontalface_default.xml") #导入XML文件
while(cap.isOpened()):
f,img = cap.read() #读取一帧图片
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY) #转换为灰度图
face = face_xml.detectMultiScale(gray,1.3,10) #检测人脸,并返回人脸位置信息
for (x,y,w,h) in face:
cv.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv.imshow("1",img)
if cv.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
注意
:
① 第二句代码中的 admin 为我的 IP 摄像头用户名, admin 为我的IP摄像头密码,这个可以在手机APP的设置里查看和修改,代码中的要使用自己的用户名、密码。
② @后面的地址是局域网IP地址,这个在打开IP摄像头服务器之后的界面就能看到,也需要修改为自己的地址。
③ 代码的其他部分无需修改。
注意
:在手机摄像头人脸识别时,切记最好将眼镜、刘海等遮挡物去掉!!以便更好的识别。
在使用 OpenCV 调用手机摄像头进行人脸识别的实验中,实验过程上并不难,就是操作比较复杂。Python+OpenCv 来实现摄像头人脸识别的原理是通过 Haar 特征选择,对人脸的特征数据进行提取,实现将人脸识别出来。在做的时候需要注意的细节也比较多,在最后的摄像头识别时,切记将眼镜等遮挡物拿掉,尽量露出完整脸部,不然会识别不成功,我就是因为这个出现一直识别不了的问题,耽误了很长时间,所以需要多注意。
通过一个简单的人脸识别应用,了解 OpenCV 的运行环境和功能,对OpenCV 有了更深一步探索的好奇心,期待今后能更进一步学习和应OpenCV 完成深度识别检测。文章内容如有错误或疑问,欢迎读者评论区留言。
1、windows环境下的Anaconda安装与OpenCV机器视觉环境搭建
2、基于OpenCV调用手机摄像头并实现人脸检测