赞
踩
本文参考
Using Orbbec Astra 3D cameras
C++20学习:基于Ubuntu系统编译gcc10.2.0
linux下编译安装opencv生成opencv.pc
最近项目需要开发立体视觉,逛了一圈决定采用结构光摄像头方案,该技术比较成熟,开发难度相对TOF方案较小
具体摄像头型号为 乐视三合一体感摄像头LeTMC-520 基本就是奥比中光 Orbbec Astra Pro 的换皮版 就连插在电脑上显示的设备名称都是 Astra Pro
2020年底 奥比中光宣布了与Opencv的合作 OpenCV增加对Astra系列3D深度相机的支持后 就可以使用cv::VideoCapture直接获取深度传感器信息 与使用其获取彩色相机视频流的过程一致 极大的方便了开发
随着乐视的倒闭 商家手里囤积的乐视摄像头在淘宝和闲鱼低价抛售 无疑成为当下性价比最高的开发用结构光摄像头
以下列出两者的对比
型号 | Astra Pro | 乐视三合一 |
---|---|---|
外观 | 黑色外壳 | 银色铝合金 手感很好 |
工作范围 | 0.6m~8m | 0.6m~4m |
可视角度 | H66.1’ V40.2’ | H60’ V46.7’ |
彩色图分辨率 | 1280x720 640x480 320x240 | 1280x720 640x480 |
深度图分辨率 | 1280x1024 640x480 320x240 160x120 | 640x480 320x240 160x120 |
接口 | 自带usb线 | 需要外接usb公对母线 我的方案是使用usb拓展坞 |
在奥比中光官网下载openni安装包
解压后进入目录~/OpenNI_2.3.0.66/Linux/OpenNI-Linux-x64-2.3.0.66
需要注意的是所进入的目录要根据电脑cpu架构(x86
x64 arm)决定 我的电脑是64位处理器 所以进入的目录是 /OpenNI-Linux-x64-2.3.0.66
在终端中执行
$ chmod +x install.sh
$ sudo ./install.sh
完成后重新插拔摄像头以使udev规则生效
然后运行如下命令更改环境变量
$ source OpenNIDevEnvironment
验证环境变量是否生效 终端与下列情况一致则代表安装成功
$ echo $OPENNI2_INCLUDE
/home/user/OpenNI_2.3.0.63/Linux/OpenNI-Linux-x64-2.3.0.63/Include
$ echo $OPENNI2_REDIST
/home/user/OpenNI_2.3.0.63/Linux/OpenNI-Linux-x64-2.3.0.63/Redist
opencv官方推荐使用cmake编译
在安装cmake之前要确保linux系统上已经下载了gcc和g++ 否则会报错
嫌麻烦不想安装最新版的话可以直接输入以下命令
sudo apt-get gcc g++
若要下载最新版10.2.0 则要先下载软件安装包
下载gcc
解压后打开终端运行命令 会在线下载依赖包
cd gcc-10.2.0
./contrib/download_prerequisites
然后安装build-essential软件包
sudo apt-get install build-essential
再然后返回上级目录->建立build文件夹->进入文件夹->生成makefile->开始编译
我只编译c和c++两种语言 另外j后面的数字是cpu同时运行的线程数 具体视cpu参数为准 线程越多速度越快
具体命令为
cd ..
mkdir gcc-build-10.2.0 && cd gcc-build-10.2.0
../gcc-10.2.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j8
经过漫长的等待 make完成后安装
sudo make install
结束后查看版本 如图显示则表明安装成功
g++ --version
在此之前要先下载OpenSSL development package和qtbase5-dev
sudo apt-get install libssl-dev qtbase5-dev
在官网下载cmake-x.xx.x.tar.gz后解压
在解压后的文件夹中打开终端输入
$ ./bootstrap --qt-gui
$ make -j8
$ sudo make install
至此cmake安装完成 可以通过如下命令查看版本
cmake -version
安装opencv之前需要根据以下命令预装依赖库
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
然后在opencv官网下载4.5.1以上版本的opencv
点击【sources】即开始下载
下载完后解压 cd到opencv目录内 可选BUILD_EXAMPLES项以得到astra摄像头的例程
$ mkdir build
$ cd build
$ cmake -DWITH_OPENNI2=ON -DBUILD_EXAMPLES=ON -DOPENCV_GENERATE_PKGCONFIG=ON ..
终端如图所示则表示openni库被顺利找到(openni一栏显示yes,末尾显示configuring done和Generating done)
值得一提的是 在配置openni的最后一步:
$ source OpenNIDevEnvironment
之后 如果退出当前终端的话 source的作用就会消失 所以我的做法是source后在当前终端cd到opencv的文件夹中 再进行mkdir build等一系列操作
最后是编译并安装
make -j8
sudo make install
如图所示 至此openni与opencv环境搭建成功
sudo vim /etc/ld.so.conf.d/opencv.conf
按i即可以开始编辑文本 在文件末尾添加:/usr/local/lib
如果这是我们第一次安装opencv,这个文件可能是个空文件,这里的/usr/local/lib就是我们安装opencv时安装的那些库的目录
然后保存编辑并退出回终端 方法为输入冒号:,再输入wq
退回终端后 输入
sudo ldconfig
sudo vim /etc/bash.bashrc
然后在文本末尾处添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
然后同样:wq,再在终端输入以下命令以更新系统的环境变量
source /etc/bash.bashrc
至此pkg-config配置完成
以管理员身份打开Qt Creator
步骤是打开qt的安装目录 在此路径下打开终端
/QT/Tools/QtCreator/bin
终端中输入
sudo ./qtcreator
新建工程在此不赘述
pro文件中要加入以下
INCLUDEPATH += /usr/local/include \
/usr/local/include/opencv4 \
/usr/local/include/opencv4/opencv2
LIBS += /usr/local/lib/lib*
LIBS +=-lpthread
源文件的话opencv官方有例程 在opecv的安装目录内
~/opencv-4.5.1/samples/cpp/tutorial_code/videoio/
orbbec_astr
值得注意的是,在打开彩色摄像头的命令这里 需要做一下小更改,加入体感摄像头的彩色摄像头对应的索引号 我的电脑上是2 具体是哪个网上有挺多查找的办法的 像我的话比较懒 就直接从0开始一个一个试
VideoCapture colorStream(2,CAP_V4L2);
运行就可以见证奇迹
记得深度图的有效范围在0.4米以外
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。