扯几句:习惯了在Windows全家桶宇宙第一IDE的大树下乘凉,编辑调试,环境部署等都很方便快捷。发现公司被禁用vs大法之后,只能尝试上Ubuntu开源的世界寻找生存,故站在各位CSDN大神前辈的肩膀上尝试部署qt+opencv+pcl的程序编辑调试之路,水平有限,也是留给自己以保存的。
第一步:更换软件源,以下是用过有效的,不然使用终端安装会下载不下来。
重要:运行脚本前,更换国内软件源,/etc/apt/source.list,以下是source.list的文件内容,供参考
/start*/
阿里云源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
##測試版源
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
源碼
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
##測試版源
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
清华大学源
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
##測試版源
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
源碼
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
##測試版源
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu xenial-security main
/end/
第二步:安装Qt。参考链接https://blog.csdn.net/jcs1992/article/details/81506880
第三步:安装opencv
方法1:从库直接安装(如果不更换下载源,因为wall会下载失败)
sudo apt-get install libopencv-dev python-opencv
方法2:编译安装(步骤较多,没有用过故不介绍)
第四步:安装pcl点云库
安装参考链接: https://blog.csdn.net/yingmai7741/article/details/86531850
方法1:从库直接安装:
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-dev
方法2: 编译安装(步骤较多,没有用过故不介绍)
第五步:测试,使用QT测试以上库是否安装成功。.pro配置文件如下,以下是本人安装的路径和版本号,需要根据各自情况自行更改。
#opencv
INCLUDEPATH +=/usr/include
/usr/include/opencv
/usr/include/opencv2
LIBS += /usr/lib/x86_64-linux-gnu/libopencv*.so
#eigen3
INCLUDEPATH += /usr/include/eigen3
#VTK
INCLUDEPATH += /usr/include/vtk-6.3
LIBS += /usr/lib/x86_64-linux-gnu/libvtk*.so
#pcl
INCLUDEPATH += /usr/include/pcl-1.8
LIBS += /usr/lib/x86_64-linux-gnu/libpcl*.so
#boost
INCLUDEPATH += /usr/include/boost
LIBS += /usr/lib/x86_64-linux-gnu/libboost*.so
注意:1.如果编译时,遇到no such file 就去找哪个文件include进去
2.Linux可以用通配符,很方便
3.在终端寻找本地的文件存储路径 如:find / -name libopencv.so
find / -name libpcl*.so
测试main函数如下:
#include “mainwindow.h”
#include
#include
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/io/ply_io.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include
using namespace std;
using namespace cv;
int main(int argc, char *argv[])
{
Mat img = imread(“tt.jpeg”);//图片放在debug文件里
line(img,Point(1,1),Point(250,250),Scalar(0,0,255),5);//画一条直线
imshow(“可爱的小猫咪”, img);
waitKey(0);
return 0;
pcl::PointCloudpcl::PointXYZ::Ptr cloud(new pcl::PointCloudpcl::PointXYZ);
if (pcl::io::loadPLYFilepcl::PointXYZ(“bunny.ply”, cloud) == -1) // load the file,需要自己的点云文件
{
PCL_ERROR(“Couldn’t read file test_pcd.pcd \n”);
system(“PAUSE”);
return (-1);
}
pcl::visualization::CloudViewer viewer(“Viewer”);
viewer.showCloud(cloud);
system(“PAUSE”);
}
谢谢CSDN。