linux挂载网络摄像头(嵌入式Linux系列第13篇:USB摄像头拍照)

1.引言

本篇介绍USB摄像头的使用,实现的功能是通过摄像头进行拍照,生成jpg格式图片。

2.环境介绍

2.1.硬件

1) NUC972开发板

2) USB摄像头

2.2.软件

1) Uboot继续使用之前文章用的,无须改动。

2) Kernel在上一篇基础上,要做一定的修改,用来支持USB摄像头识别。

3) Rootfs在上一篇用Buildroot生成的基础上,无须改动。

3.内核配置

Linux 内核中已经包含了USB摄像头的驱动,只要勾选上相关配置即可。

Device Drivers –>

<*> Multimedia support —>

[*] Cameras/video grabbers suppor【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.t

<*> V4L2 int device (DEPRECATED)

[*] Media USB Adapters —>

<*> USB Video Class (UVC)

[*] UVC input events device support (NEW)

<M> GSPCA based webcams (NEW) —>

<*> USB Philips Cameras

[ ] USB Philips Cameras verbose debug (NEW)

[*] USB Philips Cameras input events device support (NEW)

<*> CPiA2 Video F【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.or Linux

<*> USB ZR364XX Camera support

<*> USB Syntek DC1125 Camera support

<*> USB Sensoray 2255 video capture device

<*> USB SN9C1xx PC Camera Controller support (DEPRECATED)

[*] V4L platform devices —>

配置完,保存,编译,之后下载到板子里。

插入USB摄像头,打印信息如下:

说明驱动已经OK了。

4.libjpeg库安装

之前buildroot编出来的根文件系统里是有jpeglib库的,版本是libjp【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.eg.so.9.1.0,由于我们应用程序依赖的版本是8.0,所以单独编译了一个。

步骤如下:

1) 解压jpegsrc.v8b.tar.gz

2) 进入到解压后的jpeg-8b目录里,执行

./configure CC=arm-linux-gcc LD=arm-linux-ld –host=arm-linux –prefix=/home/topsemic/nuc972/toolchain/arm_linux_4.8/usr –exec-prefix=/home/topsemic/nuc972/toolchain/arm_linux_4.8/usr

其中:

–prefix参数是强制设定install之【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.后生成文件的存放目录,这里将其放到了交叉编译工具链文件夹的/usr 目录下,放到这里的原因是因为后面编译应用程序时会在交叉工具链的目录下查找相关的库。

topsemic@topsemic-virtual-machine:~/nuc972/tool/jpeg-v8b/jpeg-8b$ ./configure CC=arm-linux-gcc LD=arm-linux-ld –host=arm-linux –prefix=/home/topsemic/nuc972/toolchain/arm_linux_4.8/usr –exec-prefix=/home/topsemic/nuc972/to【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.olchain/arm_linux_4.8/usr

3)make 编译

topsemic@topsemic-virtual-machine:~/nuc972/tool/jpeg-v8b/jpeg-8b$ make

4)最后make install

topsemic@topsemic-virtual-machine:~/nuc972/tool/jpeg-v8b/jpeg-8b$ make install

/home/topsemic/nuc972/toolchain/arm_linux_4.8/usr/lib下生成相应的库。

注:之前buildroot生成的文件系统里其实已经有了libjpeg,在上面可以【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.看到文件为libjpeg.so.9.1.0,或者我们登陆到板子上

find / -name “libjpeg*” 查找下,在/usr/lib目录下也可以看到

这三者的关系是:

使用ls -al 查看

其中libjpeg.so 和libjpeg.so.9是软连接文件,相当于windows下的快捷方式,如果我们在winscp下查看,可以看到他们的图标上有个箭头

真正使用的库文件是libjpeg.so.9.2.0

5)我们需要将新编译的libjpeg库放到板子上,方法是先把板子上原有的三个文件删掉,然后通过winscp拷贝libjpeg.so.8.0.2到板子的/usr/lib目录下,

最后使用ln -s 源文件【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业. 目标文件 命令,新建两个软连接

5.应用程序

应用程序的编译步骤如下:

1) 进入到v4l2_demo目录

2) make编译

3) 生成的可执行文件是bin目录下的mainapp

4) 将其放到板子里,运行结果如下:

# ./mainapp

———– connected ————–

v4l2_open function open /dev/video0 success!

driver: uvcvideo

card: USB2.0 PC CAMERA

bus_info: usb-nuc970-ehci-2

version: 199276

capabilities: 84000001

Dev【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.ice /dev/video0: supports capture.

Device /dev/video0: supports streaming.

fmt.type: 1

pix.pixelformat: YUYV

pix.width: 640

pix.height: 480

pix.field: 1

Frame buffer 5: address = 0xb6c88000, length = 614400

Frame buffer 5: address = 0xb6bf2000, length = 614400

Frame buffer 5: address = 0xb6b5c000, length = 6【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.14400

Frame buffer 5: address = 0xb6ac6000, length = 614400

Frame buffer 5: address = 0xb6a30000, length = 614400

open /dev/video success!

————- 0

call yuyv_to_rgb function

yuyv_to_rgb function excute OK!

2222222

333333

44444

555555

666666

777777

path3=./jpeg1.jpg 1

8888888

9999999

程序在不断的拍摄并保存图像,图像名称为jpegx.【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.jpeg(x为1,2,3 依次增加)

6.结束语

本篇为大家介绍了Linux下USB摄像头的简单使用,欢迎大家多交流。

TopSemic 让芯片使用更简单

推荐阅读

给力项目线报网会员可免费下载 加入会员
友情提醒: 请尽量登录购买,防止付款了不发货!
QQ交流群:226333560 站长微信:qgzmt2
温馨提示:本站提供的一切软件、教程和内容信息都来自网络收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

给TA打赏
共{{data.count}}人
人已打赏
行业资讯

纯电动汽车成本分析(纯电动车后期成本你真的算明白了吗?)

2024-11-26 20:29:56

行业资讯

免费领东西的平台哪个好一点(免费领东西的试用网站哪家好)

2024-11-26 21:00:31

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索