玩转Dragonboard 410c USB摄像头——图像采集及web发布

来源:互联网 发布:js数组写法 编辑:程序博客网 时间:2024/05/21 14:06

         看完前面几个blog 相信大家已经基本上会用Python脚本在Dragoboard 410c上进行各种关于USB摄像头图像采集的开发了,这里为了进一步让大家能够发挥UBS摄像头的作用,和方便大家在开发过程中将Dragoboard 410c采集到的信息在网上进行发布,本文结合前面的一篇介绍BOA  web服务器的blog,带大家一起来完成如何在Dragboard 410c上用Python脚本和Opencv库实时的采集图像,并且发布到web上,用户通过web就可以访问摄像头采集的图片。

         首先大家需要准备除了Blog http://blog.csdn.net/andymfc/article/details/52997050中所有的设备之外,还需要准备一个无线路由器为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服务器进行配置即可http://blog.csdn.net/andymfc/article/details/52163791

         配置好后,我们可以找到/var/www的目录,这个时候我们只要用sudo boa 启动boa服务器,然后将编写好的html文件和脚本文件放到该目录下,即可通过浏览器进行访问了,如果能够成功访问到html文件表示boa服务器搭建成功。

        完成Boa服务器搭建后,接着我们就可以参考http://blog.csdn.net/andymfc/article/details/52875764中的获取和保存图片,编写一个脚本程序来获取图片并且保存到WWW目录下,然后我们再写一个html文件来显示和刷新该图片既可以通过web网络来访问摄像头采集到的图片了。

       首先编写获取和保存图片信息的脚本,这里我们去掉了http://blog.csdn.net/andymfc/article/details/52875764中的显示部分代码,只需要每个一段时间获取图片然后保存到WWW文件夹下中即可,Python代码如下:

        #!/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

       完成获取和保存USB摄像头图像代码编写后,我们可以进行简单的测试,运行python get_pic.py就可以看到www文件夹下面就有.jpg图片文件存在。

      然后我们就可以来编写html文件了,html主要用于前端的交互,显示图片,这里我们也是定时的刷新显示图片,然后就可以实现动态的图像采集和显示了,具体的html代码如下:

        <!DOCTYPE html>
        <html>
        <head>
        <meta charset="utf-8" />
        <meta http-equiv="refresh" content="1" />
        <title> yuanchengjiankon </title>
        </head>
        <body>
        <p>test</p>
        <p>
        <img src="output.jpg" width="1200" height="700" />
        </p>
        </body>
        </html>  

      完成html编写后,将html文件保存到www目录下,然后我们将板子连接到wifi,然后通过连接该wifi的手机或者电脑就可以访问USB摄像头图像了,具体在浏览器输入192.168.23.6/test.html 即可,具体效果如下:


       这里只是向大家展示了简单的图片web发布,其实大家在自己的创作过程中,如果想将采集到的数据发布到网络上,原理也类似,还有如果你想实现更多的通过web来对dragonboard 410c进行控制,可以参考cgi编程来实现。

0 0
原创粉丝点击