回答

收藏

[评测分享] 【Avnet ZU1试用活动】+ USB摄像头测试及人脸检测

#板卡评测 #板卡评测 3138 人阅读 | 0 人回复 | 2024-08-07

本帖最后由 TLLED 于 2024-8-7 10:24 编辑



一、USB摄像头设备

1.1、硬件连接



1.2、检测USB摄像头设备。





二、测试USB摄像头
python测试USB摄像头

2.1、代码
am.py

  1. import cv2
  2. import datetime

  3. data = int(input("请输出摄像头编号 0或1或2:"))
  4. cap = cv2.VideoCapture(data)
  5. if not cap.isOpened():
  6.     print("无法打开摄像头")
  7.     exit()
  8. while True:
  9.     ret, frame = cap.read()
  10.     cv2.imshow('usb_camera', frame)
  11.     if cv2.waitKey(1) & 0xFF == ord('q'):
  12.         break


  13. cap.release()
  14. cv2.destroyAllWindows()
复制代码

2.2、运行

执行python3 am.py


显示图像




三、人脸检测

3.1、下载数据包
opencv源码中提供了一些识别算法,人的脸部、眼睛、身体、上半身等,使用这些算法可对身体部位进行识别。
开发板安装的opencv版本是4.5.2,下面下载对应的版本数据。(我在板卡系统中没有找到下面数据,若有这些数据可不用下载)
下载地址:https://github.com/opencv/opencv/tree/4.5.2


下载只需要data下面的xml文件




3.2、测试代码

am2.py

  1. import cv2

  2. #获取opencv版本
  3. print(cv2.getVersionString());
  4. #检测脸部和眼睛
  5. face_cascade = cv2.CascadeClassifier("/home/root/data/haarcascades/haarcascade_frontalface_default.xml")
  6. eye_cascade = cv2.CascadeClassifier( "/home/root/data/haarcascades/haarcascade_eye.xml")

  7. cap = cv2.VideoCapture(0)
  8. while True:
  9.     ret, frame = cap.read()

  10.     gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  11.     faces = face_cascade.detectMultiScale(gray, 1.1, 4)
  12.     for (x, y, w, h) in faces:
  13.         cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
  14.         roi_gray = gray[y:y+h, x:x+w]
  15.         eyes = eye_cascade.detectMultiScale(roi_gray)
  16.         for (ex, ey, ew, eh) in eyes:
  17.             cv2.rectangle(frame, (x+ex, y+ey), (x+ex+ew, y+ey+eh), (0, 255, 0), 2)
  18.     cv2.imshow('usb_camera_face', frame)
  19.     if cv2.waitKey(1) & 0xFF == ord('q'):
  20.         break
  21. cap.release()   
  22. cv2.destroyAllWindows()
复制代码

3.3、测试结果

执行命令:python3 am2.py
在眼睛和脸部位置画标记。










分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

20947 积分
257 主题
+ 关注
热门推荐
关闭

站长推荐上一条 /3 下一条