基于Dragboard 410c开发板的USB摄像头图像采集及发布
看完前面几个blog 相信大家已经基本上会用Python脚本在Dragoboard 410c上进行各种关于USB摄像头图像采集的开发了,这里为了进一步让大家能够发挥UBS摄像头的作用,和方便大家在开发过程中将Dragoboard 410c采集到的信息在网上进行发布,本文结合前面的一篇介绍BOA web服务器的blog,带大家一起来完成如何在Dragboard 410c上用Python脚本和OpenCV库实时的采集图像,并且发布到web上,用户通过web就可以访问摄像头采集的图片。
首先大家需要准备除了Blog文章-- 基于Dragoboard 410c的USB摄像头人脸识别中提到的所有设备之外,还需要准备一个无线路由器为Dragoboard 410c开发板提供网络支持,同时还需要准备一个手机或者电脑,用于测试访问Dragoboard 410c开发板的信息。
接着我们就可以开始搭建我们的Dragoboard 410c的web服务器环境了,这里大家可以直接到http://www.boa.org/官网下载源码,源码下载好后,就可以copy到Dragonboard 410c开发板,在开发板上使用tar -xvf 文件名进行解压,解压后cd 命令进入到src目录下,在src目录下执行./config 进行编译配置生成makefile文件,这里我们要进行简答的修改,具体修改如下:
修改 头文件 defines.h
找到#define SERVER_ROOT "/etc/boa" 修改成
#define SERVER_ROOT "/var/www"
这里定义的是 web 服务器的文件根目录(用户可以自行定义,是板上的目录,只要跟 boa.conf 中设置一致就可以了)
然后运行 make 进行编译,得到的可执行程序 boa,将调试信息剥去,得到的最后程序只有62872Byte 大小。
然后按照我之前写过的一种使用交叉编译方法移植Boa服务器中的配置方法对web服务器进行配置即可。(基于Dragoboard 410c的web服务器移植)
配置好后,我们可以找到/var/www的目录,这个时候我们只要用sudo boa 启动boa服务器,然后将编写好的html文件和脚本文件放到该目录下,即可通过浏览器进行访问了,如果能够成功访问到html文件表示boa服务器搭建成功。
完成Boa服务器搭建后,接着我们就可以参考文章:基于Dragoboard 410c的USB摄像头保存图片一文中的方法,获取和保存图片,编写一个脚本程序来获取图片并且保存到WWW目录下,然后我们再写一个html文件来显示和刷新该图片既可以通过web网络来访问摄像头采集到的图片了。
首先编写获取和保存图片信息的脚本,这里我们去掉了基于Dragoboard 410c的USB摄像头保存图片文章中的显示部分代码,只需要每个一段时间获取图片然后保存到WWW文件夹下中即可,Python代码如下:
完成获取和保存USB摄像头图像代码编写后,我们可以进行简单的测试,运行python get_pic.py就可以看到www文件夹下面就有.jpg图片文件存在。
然后我们就可以来编写html文件了,html主要用于前端的交互,显示图片,这里我们也是定时的刷新显示图片,然后就可以实现动态的图像采集和显示了,具体的html代码如下:
#!/usr/bin/env python
import cv2, sys
import TIme
DEVICE_NUMBER = 0
IMAGE_FILE = "output.jpg"
# Init webcam
vc = cv2.VideoCapture(DEVICE_NUMBER)
# Check if the webcam init was successful
if vc.isOpened(): # try to get the first frame
retval, frame = vc.read()
else:
sys.exit(1)
# If webcam read successful, loop indefinitely
while retval:
# Write some text onto the frame
# Show the image on the screen
# cv2.imshow("DB410c Workshop #3: Show Video", frame)
cv2.imwrite(IMAGE_FILE, frame)
TIme.sleep(1)
# Grab next frame from webcam
retval, frame = vc.read()
# Exit program after waiTIng for a pressed key
if cv2.waitKey(1) == 27:
break
DragonBoard 410c USB摄像头 相关文章: