最近偶然在咸鱼上,发现了一款低配廉价的双目摄像头,想用来玩玩双目测距,在网上参考了不少大神的资料,驱动过程遇到了不少问题,在这里将自己的驱动过程写出来给大家分享一下,最近会抽空搞搞双目测距,如果成功了,也会在这里跟大家分享一下。
官方给了Windows上的上位机,插上就能用,共有4种模式,左眼,右眼,红蓝,双目。
而我们今天主要介绍Linux环境下的配置。
该摄像头支持UVC协议,在linux下默认只能读取单目的图像,因此需要模拟上位机的切换模式按键给双目摄像头发送数据。
树莓派中可以通过uvcdynctrl命令给发送数据来切换摄像头的模式。
树莓派中需要安装uvcdynctrl,执行如下命令
sudo apt-get install uvcdynctrl
安装完成后并把uvcdynctrl命令写成shell脚本来实现四个模式的切换。
切换成双目模式的脚本内容如下,video0为摄像头,可根据实际改动。
最后一行中用0x0100,0x0200,0x0300,0x0400指令分别可以切换到左单目,右单目,红蓝模式,双目模式。
uvcdynctrl -d /dev/video0 -S 6:8 '(LE)0x50ff'
uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x00f6'
uvcdynctrl -d /dev/video0 -S 6:8 '(LE)0x2500'
uvcdynctrl -d /dev/video0 -S 6:8 '(LE)0x5ffe'
uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x0003'
uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x0002'
uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x0012'
uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x0004'
uvcdynctrl -d /dev/video0 -S 6:8 '(LE)0x76c3'
uvcdynctrl -d /dev/video0 -S 6:10 '(LE)0x0400'
树莓派创建change.sh脚本,将上述代码写入,最后一行是模式的切换,上面已经说过了。
nano change.sh
(脚本内容)
修改文件权限
chmod 777 change.sh
执行脚本
./change.sh
现在我们就可以通过脚本来切换摄像头的模式了。
下面介绍通过mjpg-streamer视频服务器采集摄像头图像,并通过Chrome浏览器采集摄像头图像。
在介绍mjpg-streamer之前,我先写一些准备工作,为了让没有基础的同学也弄出来。
Enable树莓派摄像头
用putty进入树莓派后,enable摄像头(执行一次即可,无需每次开机都执行):
|
|
选择第5个,进入后第一个就是camera,直接使能,然后重启。
|
|
安装必要的库
命令行直接敲以下指令:
sudo
apt-get update
sudo
apt-get
install
subversion
sudo
apt-get
install
libjpeg8-dev
sudo
apt-get
install
imagemagick
sudo
apt-get
install
libv4l-dev
sudo
apt-get
install
cmake
sudo
apt-get
install
git
git开源的project到本地,编译
sudo
git clone https:
//github
.com
/jacksonliam/mjpg-streamer
.git
cd
mjpg-streamer
/mjpg-streamer-experimental
#注意一定要在mjpg-streamer-experimental文件夹下,进行编译
make
all
sudo
make
install
最后,在命令行中输入命令
.
/mjpg_streamer
-i
"./input_uvc.so"
-o
"./output_http.so -w ./www"
就可以驱动摄像头了。
然后打开浏览器输入192.168.43.148:8080就可以看到图像了。
上面的IP地址是我的,大家只需要换成自己的就没问题。
效果展示。