这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 开源硬件 » 将opencv输出到网页

共1条 1/1 1 跳转至

将opencv输出到网页

菜鸟
2016-06-29 10:24:19     打赏

既然要做视频小车,那一定要能看到摄像头输出了。

但是如果想使用opencv处理图像,也得使用摄像头。但是经验告诉我们,不可能两个程序同时使用同一个摄像头的,所以最好的办法是将两个组合使用。

由于之前在wrtnode(一个基于openwrt系统的开发板)上使用过mjpg-streamer,所以想到图传首先想到的就是mjpg-streamermjpg-streamer是开放源码的,所以我最先的想法是下载下来mjpg-streamer,看看能不能修改源码,将opencv图像处理的代码塞入到获取摄像头图像和发送图像之间,然后偷梁换柱,将处理后的图像发送。这样做虽然本身工作量不是很大,但是要看大量的代码,想想还是挺兴奋的。

首先简单的介绍下mjpg-streamer,以下引用wiki介绍:

mjpg-streamer is a command line application that copies JPEG frames from one or more input plugins to multiple output plugins. It can be used to stream JPEG files over an IP-based network from a webcam to various types of viewers such as Chrome, Firefox, Cambozola, VLC, mplayer, and other software capable of receiving MJPG streams.

--https://github.com/jacksonliam/mjpg-streamer



linux 下,所有的设备都是当作文件处理的,既然mjpg-streamer的本质是传送文件,那么能否使用自己写的文件呢?现在的问题变成了如何使用opencv产生一个mjpg 文件。

Google。。。 。。。 。。。

果然送到了相关的技术文章,他做的事情正是我打算做的,得来全不费工夫。文章链接如下:

https://ariandy1.wordpress.com/2013/04/07/streaming-opencv-output-through-httpnetwork-with-mjpeg/

google搜索技术文章的一个技巧就是不要输入中文,因为mjpg-streamer是外国人开发的软件,英文的技术贴相对较多。

废话不多说,直接上教程。

首先安装mjpg-streamer

git clone https://github.com/codewithpassion/mjpg-streamer.git

cd mjpg-streamer/mjpg-streamer

make USE_LIBV4L2=true clean all

sudo make DESTDIR=/usr/local install

然后增加动态库搜索路径:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

为了避免每次开机都要重新设置,可以将这一行加入 ~/.bashrc中。

然后是安装opencv 相关的代码,作者给出了自己代码的链接,安装如下:

git clone https://github.com/ariandyy/bgsubtract.git

cd bgsubtract/

make bgsubtract2

其中比较重要的就是bgsubtract2.cpp文件。可以根据自己的需要修改。

作者的源程序运行命令如下:

./bgsubtract2 /home/[yourname]/mjpg/out.mjpg -bgs

其中/home/ariandy/mjpg/out.mjpg是输出mjpg文件的文件名,-bgs是决定是否对图像进行背景处理,我试了一下,效果不好,所以我使用的时候都是不加-bgs的。

另外还有一点注意的是,路径文件夹必须存在,否则程序会运行出错,当然也可以自行修改程序,先判断路径文件夹是否存在,如果不存在则自行创建。

另外因为mjpg文件会发生大量的读写,所以对存储器的损害较大,所以最好是写在/tmp文件夹下。所以使用命令如下:

./bgsubtract2 /temp/mjpg/out.mjpg

启用mjpg-streamer

mjpeg_streamer -i "input_file.so -f /tmp/mjpg" -o "output_http.so -w /usr/local/www"

其中/usr/local/www网页服务器的根目录,要根据自己的实际情况修改。

下次更新会讲解http服务器的搭建,敬请期待。




关键词: opencv     mjpg-streamer     树莓派2    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]