写在前面 python代码很简短,不像C++等要写几百行代码,但其实你调用的模块,底层都是用C/C++写的 如果imshow出现qt.qpa.plugin: Could not find the Qt platform plugin “cocoa” in “”的报错,请看:Stackoverflow解决方案 请提前安装好opencv-python库 由于历史原因opencv-python库使用时只能叫cv2 人脸检测效果图 python完整代码 识别静态图片 # 导入opencv-python库 import cv2 picName = input("请输入你要识别人类的图片名称(如:pi 【人脸识别】技术是一种基于人的生物特征进行身份识别的计算机技术,广泛应用于安全、监控、门禁等领域。在本文中,我们将使用Python实现一个简单的人脸检测程序,利用OpenCV库来快速有效地完成这一任务。 确保你已经安装了`opencv-python`库,这是Python中的一个图像处理库,其底层实现是用C/C++编写的,提供了丰富的图像处理和计算机视觉功能。如果在运行过程中遇到`qt.qpa.plugin: Could not find the Qt platform plugin "cocoa" in ""`的错误,可以通过查阅Stack Overflow上的解决方案来解决。 在Python中,我们主要使用`cv2`模块来进行人脸检测。下面是一个完整的Python代码示例,用于识别静态图片中的人脸: ```python import cv2 picName = input("请输入你要识别人类的图片名称(如:pic1.jpg): ") img = cv2.imread(picName, 1) # 1表示以彩色的方式读入图片 # 导入预训练的人脸级联分类器 face_engine = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') # 使用分类器检测人脸 faces = face_engine.detectMultiScale(img, scaleFactor=1.2, minNeighbors=7) for (x, y, w, h) in faces: # 在图片上绘制人脸边界框 img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2) # 显示结果并保存图片 print("正在展示识别后的效果图(在窗口内按q退出)") while True: cv2.imshow('img', img) if cv2.waitKey(1) & 0xFF == ord('q'): break cv2.destroyAllWindows() cv2.imwrite('output.jpg', img) ``` 这段代码首先导入`cv2`库,并要求用户输入待检测的图片名称。接着,使用`cv2.imread()`函数读取图片,并通过`cv2.CascadeClassifier()`加载预训练的人脸级联分类器模型。`detectMultiScale()`方法用于在图片中检测人脸,返回的是人脸的坐标列表。然后,我们遍历这些坐标,用`cv2.rectangle()`在图片上画出人脸框。显示结果并保存到`output.jpg`。 除了识别静态图片,我们还可以扩展此代码来实时检测摄像头中的人脸。下面的代码展示了如何开启摄像头并实时检测动态人脸: ```python import cv2 face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml') smile_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_smile.xml') # 打开摄像头 cap = cv2.VideoCapture(0) while (True): # 获取摄像头帧 ret, frame = cap.read() # 检测人脸 faces = face_cascade.detectMultiScale(frame, 1.3, 2) for (x, y, w, h) in faces: # 绘制人脸框 cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2) # 在人脸区域检测眼睛和笑容 face_area = frame[y:y+h, x:x+w] eyes = eye_cascade.detectMultiScale(face_area, 1.3, 10) smiles = smile_cascade.detectMultiScale(face_area, ...) # ... 对眼睛和笑容进行类似处理 ... # 显示结果 cv2.imshow('frame', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() ``` 这个扩展版代码同样使用`cv2.VideoCapture(0)`打开摄像头,获取每一帧图像,并在每一帧中检测人脸、眼睛和笑容。这展示了OpenCV的强大之处,不仅可以检测基本的人脸,还能进一步识别其他面部特征。 Python结合OpenCV库提供了一种简洁且高效的方法来实现人脸识别和检测。无论是静态图片还是动态视频流,都能轻松处理,为各种应用场景提供了便利。


















- 粉丝: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2023年认证考试奥创利综合布线系统处理计划模板.doc
- DB21_T_2009-2012_规模化养猪场种猪猪瘟净化技术规范.doc
- l11l14算法分析与数据结构.pptx
- 电大国家开放大学《管理会计》网络核心课形考网考作业试题及答案.docx
- Excel表格通用模板:每日库存量监控表(可视化存量出入库警示-累计计算).xlsx
- C面向对象编程习题.doc
- Photoshop课程教案.doc
- 2023年网络工程师软考知识点包括系统知识.doc
- 2023年最新java面试题技术面试.docx
- 第章电子商务犯罪预防.ppt
- CASS软件计算公路土方的步骤.docx
- STC系列单片机总复习题.doc
- XXXX二级建造师施工管理Lau网络整理版.pptx
- 大酒店网站建设方案.doc
- 2023年电子商务模拟实验报告总结.doc
- 编程实现BIP、BSQ、BIL三种格式转换.doc


