3196|2

106

帖子

0

TA的资源

版主

楼主
 

【行空板 Python编程学习主控板】评测九、摄像头验证与AI应用体验 [复制链接]

本帖最后由 天意无罪 于 2022-12-10 23:33 编辑

        接近年关,事情真的多啊,最近忙写投标文件,连周末都没有休息,每天工作到凌晨1~2点,睡5个小时左右又得起床上班,哎,真的是累的啊。何况年龄大了,感觉熬夜越来越吃力了。

        今天和同事一起终于把投标文件搞定了,奈何行空板的评测已经有1周多时间没有更新了,今天在怎么也得更新一篇啊。

        上篇评测,通过行空板自带unihiker库的Audio类实现了音乐播放功能,验证了购买的USB免驱声卡可以使用,为后面的AI语音识别应用做好准备,接下来就是测试验证在DFRobot官网购买的USB免驱摄像头是否可以正常使用,所以本次评测内容主要就是测试摄像头功能是否正常,主要从以下2方面进行测试:

    (1)MediaPipe应用演示

    (2)使用OpenCV库捕获摄像头图像并实时显示

    (一)MediaPipe案例演示

    (1)源码下载

        DFRobot提供了可以直接在行空板上运行的MediaPipe应用案列,通过以下链接可以下载源码:

        百度网盘:https://pan.baidu.com/s/1H8yVFjFTEvZIrgwzDYpVEA?pwd=aixk

        Gitee:https://gitee.com/unihiker/unihiker-aidemo

        我是在百度网盘上下载的源码,下载后解压,然后通过samba文件共享功能上传到行空板上的example目录下,example文件夹是我新建用于存放DFRobot的演示案例的。

    (2)安装支持库

        在Mind+软件中,先运行“1-Install_dependency.py”安装程序,用于安装opencv库和MediaPipe库。

        说明:也可以直接在行空板显示屏界面,找到media_pipe目录,然后点击运行“1-Install_dependency.py”安装程序;

 

图1

 

图2

        运行1-Install_dependency.py程序后,Python会自动通过pip命令安装上述2个库文件,安装成功后会在终端中显示相关信息(PS:此处忘了截图)。

        该案例中提供了:人脸检测、面部识别、手势识别、人体姿势识别、人体全身姿态识别等7个功能演示程序;

 

图3

       (3)功能演示

    
 

    (二)使用OpenCV库捕获摄像头图像并实时显示

        个人初次接触OpenCV还是当年读大学时,那时候有个项目需要编写一个上位机软件,这个上位机软件需要操作摄像头进行图像抓拍,并通过图像处理算法计算被测物体的一些关键参数。由于当时我开发上位机都是用的Visual Basic语言,对C++不熟悉,于是将OpenCV的一些图像处理算法硬生生地用Visual Basic给写出来了,最后也实现了功能。

        这一步,通过调用OpenCV库,捕获摄像头的实时图像,并显示在行空板自带的2.8寸屏幕上。

    (1)安装OpenCV库

        由于在上一步演示操作中,已经安装了OpenCV库,所以此处不用在单独安装。

    (2)编写代码

import cv2

#False:不旋转屏幕(竖屏显示,上下会有白边)
#True:旋转屏幕(横屏显示)
screen_rotation = True 

cap = cv2.VideoCapture(0)               #设置摄像头编号,如果只插了一个USB摄像头,基本上都是0
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)  #设置摄像头图像宽度
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240) #设置摄像头图像高度
cap.set(cv2.CAP_PROP_BUFFERSIZE, 1)     #设置OpenCV内部的图像缓存为1,提高图像的实时性。

cv2.namedWindow('camera',cv2.WND_PROP_FULLSCREEN)                                   #窗口全屏
cv2.setWindowProperty('camera', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)     #窗口全屏

while cap.isOpened():
    success, image = cap.read()
    if not success:
        print("Ignoring empty camera frame.")
        continue
    if screen_rotation: #是否要旋转屏幕
        image = cv2.rotate(image, cv2.ROTATE_90_COUNTERCLOCKWISE) #旋转屏幕
    cv2.imshow('camera', image)
    if cv2.waitKey(5) & 0xFF == 27:
        break
cap.release()

        代码参考了DFrobot论坛上的一篇帖子:https://mc.dfrobot.com.cn/thread-312867-1-1.html,所以此处不再对代码进行详细说明。

    (3)功能演示


 

最新回复

牛鬼牛鬼。周慧敏都出来了。   详情 回复 发表于 2022-12-11 09:34
点赞 关注

回复
举报

6968

帖子

11

TA的资源

版主

沙发
 

牛鬼牛鬼。周慧敏都出来了。

点评

哈哈哈  详情 回复 发表于 2022-12-11 10:09
 
 

回复

106

帖子

0

TA的资源

版主

板凳
 
lugl4313820 发表于 2022-12-11 09:34 牛鬼牛鬼。周慧敏都出来了。

哈哈哈

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表