查看: 1680|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    半小时前
  • 签到天数: 1075 天

    连续签到: 3 天

    [LV.10]以坛为家III

    发表于 2024-8-7 10:25:14 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 TLLED 于 2024-8-7 10:24 编辑



    一、USB摄像头设备

    1.1、硬件连接

    100.jpg

    1.2、检测USB摄像头设备。


    001.png


    二、测试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
    002.png

    显示图像

    003.png


    三、人脸检测

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

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

    006.png


    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
    在眼睛和脸部位置画标记。

    005.png








    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-12-4 16:28 , Processed in 0.128308 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.