【PHYTEC开发板试用体验】3 通过开发板拍一张照片

描述

本文来源电子发烧友社区,作者:jf_00240724, 帖子地址:https://bbs.elecfans.com/jishu_2286208_1_1.html

1.       硬件准备
接下来,我们的目的是做一个图像识别相关的事情,但由于我们这个Phytec开发板它并没有带一个摄像头外设,所以我们需要给他装一个摄像头,考虑到开发板上有自带的USB,那我们就用手头上的一个USB摄像头,如下图
PHYTEC
 
2.       摄像头驱动
好了,硬件准备好了,我们就要准备对应的驱动,我们先尝试把摄像头插上板子上的USB口,然后到/dev目录下看一下有没有对应的驱动设备产生
PHYTEC
 
开发板的demo里的驱动还是挺全的,可以看的出来我们的摄影头驱动已经装好了。
3.       应用程序
3.1 简介
嗯,接下来我们就可以写一个上层应用程序,来验证一下这个驱动是不是好的?功能很简单,我们按照我们的想法来拍一张照片,因为有我们上一篇做一个霓虹灯的实验做基础,我们现在应该很容易通过文件读写的方式来调用底层的摄像头驱动(其实就是一个文件),然后启动拍摄,读取一张照片。这里我们引入qml语言做UI设计,然后通过一个按钮来触发拍摄,并尝试把图片显示到界面上
3.2创建工程
打开QT之后,我选了一个swipe的demo,这是一个以实现滑动切换界面,这里我想到了之前的LEDs霓虹灯没有界面控制,这里我顺便加上。所以可以看到两个界面,一个为了摄像,一个为了霓虹灯,简单的修改一下名字即可得到如下效果:
PHYTEC
 
3.3 Qml和cpp之间是怎么交互的?
这里要特别感谢qt官方的视频教程,链接如下:
https://app.ma.scrmtech.com/meetings-api/sapIndex/SapSourceData?pf_uid=23816_1987&sid=58001&source=2&pf_type=3&channel_id=25666&channel_name=Qt%2BWeChat&tag_id=e2d25d1ec8b84c22&appid=wxd90794c560648dff
Cpp调用qml里的函数:
Qml中的方法都可以当一个槽来使用,cpp中可以通过connect函数来触发qml里的方法
qml调用cpp里的函数:
1.       通过setContextProperty可以把cpp中的QObject指针暴露给qml,qml就可以直接调用了
2.       通过qmlRegisterType可以把cpp中的类注册到qml,qml再结合信号和槽就可以直接调用了
 
一句话总结:Qml和cpp之间交互通过QtMeta-Object system进行交互的,其中有很多方法,但是常用的还是信号和槽的方式交互
我们找到linux_UVC library一个库,在这个基础上修改来增加我们的需求:
所有代码的github地址放在如下位置:
最后放一个拍的照片的效果:

PHYTEC

PHYTEC

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分