【V1.1】基于树莓派的OpenCV-Python摄像头人脸追踪系统(更新系统、含演示视频)
2022/3/3 14:15:11
本文主要是介绍【V1.1】基于树莓派的OpenCV-Python摄像头人脸追踪系统(更新系统、含演示视频),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
【V1.1】基于树莓派的OpenCV-Python摄像头人脸追踪系统(更新系统、含演示视频)
该系统目前结合了树莓派+51单片机
树莓派主要用于运行Python程序 追踪人脸 同时用GPIO口给出信号
单片机用于控制42步进电机导轨左右移动
资源:
视频:
先前的文章:
https://blog.csdn.net/weixin_53403301/article/details/122898050
人脸追踪部分:
https://blog.csdn.net/weixin_53403301/article/details/120497427
单片机控制42步进电机导轨部分:
https://blog.csdn.net/weixin_53403301/article/details/122658780
代码如下:
import cv2 import threading import RPi.GPIO as GPIO # import time GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(23, GPIO.OUT) GPIO.setup(24, GPIO.OUT) GPIO.output(23, GPIO.HIGH) GPIO.output(24, GPIO.HIGH) cap = cv2.VideoCapture(0) # 开启摄像头 classifier = cv2.CascadeClassifier('haarcascade_frontalface_alt2.xml') ok, faceImg = cap.read() # 读取摄像头图像 if ok is False: print('无法读取到摄像头!') high=faceImg.shape[0] width=faceImg.shape[1] left_point = width/2+25 right_point = width/2-25 gray = cv2.cvtColor(faceImg,cv2.COLOR_BGR2GRAY) faceRects = classifier.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=3,minSize=(32, 32)) close=0 def LEFT(): GPIO.output(23, GPIO.LOW) GPIO.output(24, GPIO.HIGH) def RIGHT(): GPIO.output(23, GPIO.HIGH) GPIO.output(24, GPIO.LOW) def STOP(): GPIO.output(23, GPIO.HIGH) GPIO.output(24, GPIO.HIGH) def track(): while close==0: gray = cv2.cvtColor(faceImg,cv2.COLOR_BGR2GRAY) faceRects = classifier.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=3,minSize=(32, 32)) if len(faceRects): x,y,w,h = faceRects[0] # 框选出人脸 最后一个参数2是框线宽度 # cv2.rectangle(faceImg,(x, y), (x + w, y + h), (0,255,0), 2) central_point = x+w/2 if central_point > left_point: LEFT() print("Left") elif central_point < right_point: RIGHT() print("Right") else: STOP() print("Central") STOP() print("Stop") thread1 = threading.Thread(target=track) thread1.start() # 循环读取图像 while True: faceImg = cap.read()[1] # 读取摄像头图像 cv2.imshow("faceImg",cv2.flip(faceImg,1)) if cv2.waitKey(10) == 27: # 通过esc键退出摄像 break # 关闭摄像头 cap.release() cv2.destroyAllWindows() close=1 STOP() print("Stop")
这篇关于【V1.1】基于树莓派的OpenCV-Python摄像头人脸追踪系统(更新系统、含演示视频)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门