2022.9.26 bionic
我这里提供3.4.1版本
自取放到ubuntu中,解压
链接:https://pan.baidu.com/s/1M6QUGGHJDwvDlizLZg-_xw
提取码:xaya
当然了你去官网可以安装新的版本
https://opencv.org/releases/
不过我这里是按照3.4.1的安装的
1.1安装依赖项
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev
如果出现E: 无法定位软件包 libjasper-dev问题,执行一下指令
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
1.2 编译
cd opencv-3.4.1/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release –D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make
sudo make install
这里就不过多介绍了,很简单
1.3 配置环境
sudo gedit /etc/ld.so.conf.d/opencv.conf
在opencv.conf 中添加如下内容
/usr/local/lib
然后使刚配置路径生效
sudo ldconfig
打开bash文件,配置bash
sudo gedit /etc/bash.bashrc
在打开的bash.bashrc的最末尾添加如下代码
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存关闭文件,使刚才的配置生效
source /etc/bash.bashrc
1.4 到这个地方,opencv安装完成
常见问题:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
注意,根据正则表达式 'libjpeg.dev' 选中了 'libjpeg-dev'
注意,根据正则表达式 'libtiff5.dev' 选中了 'libtiff5-dev'
E: 无法定位软件包 libjasper-dev
解决:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
该项目需要pcl库,一般安装电脑都会自带pcl1.8版本的,但是会缺少一些库文件,我是参考第5讲 相机与图像,执行命令:
sudo apt install libpcl-dev pcl-tools
1.1修改Cmakelist
因为和distorded一个文件夹所以只需要修改一次cmake,到distorded实现就不用了
CMakeLists:
project(imageBasics)
cmake_minimum_required(VERSION 3.10)
add_executable(imageBasics imageBasics.cpp)
# 链接OpenCV库
find_package( OpenCV REQUIRED )
#添加头文件
include_directories( ${OpenCV_INCLUDE_DIRS})
target_link_libraries(imageBasics ${OpenCV_LIBS})
add_executable(undistortImage undistortImage.cpp)
# 链接OpenCV库
target_link_libraries(undistortImage ${OpenCV_LIBS})
set(CMAKE_CXX_FLAGS "-std=c++11")
cpp文件不需要修改,因为不需要改路径
1.2 实现
mkdir build
cd build
cmake ..
make
这里有手就行。
make完成后,在build终端里
执行命令为
./imageBasics ../ubuntu.png
2.1修改cpp
/home/zhangyuanbo/Slam14_2/ch5/imageBasics/distorted.png
主要是这句话一定要修改,不然会一遍又一遍报opencv的错误!!!!也就是distorted图片的位置
可以进入终端
pwd
把地址复制粘贴到png前面
我这里打开文件使用的是vim
任意位置按o
编辑,按两次esc键退出编辑模式,再按:wq
保存退出
cmake不用改(上面说过)
2.2 实现:
./undistortImage ../distorted.png
左边是畸变的,右边是处理后非畸变的
3.1 编辑cmake文件
project(stereo)
find_package(Pangolin REQUIRED)
add_executable(stereoVision stereoVision.cpp)
cmake_minimum_required(VERSION 3.10)
# 链接OpenCV库
find_package( OpenCV REQUIRED )
#添加头文件
include_directories( ${OpenCV_INCLUDE_DIRS})
target_link_libraries(stereoVision ${OpenCV_LIBS})
# 链接OpenCV库
target_link_libraries(stereoVision ${OpenCV_LIBS} ${Pangolin_LIBRARIES})
set(CMAKE_CXX_FLAGS "-std=c++14")
3.2 编辑cpp文件
// 文件路径
string left_file = "../left.png";
string right_file = "../right.png";
这里一样一定要改成我这样的,不然编译opencv疯狂报错,如果已经报错了请删掉build,改完重新编译
3.3 运行
mkdir build
cd build
cmake ..
make
./stereoVision
4.1 修改cmake文件
cmake_minimum_required(VERSION 2.8)
project(joinMap)
set( CMAKE_BUILD_TYPE Release )
set( CMAKE_CXX_FLAGS "-std=c++11 -O3")
# 包含opencv库
find_package( OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS})
#包含eigen库
find_package( Eigen3 REQUIRED)
include_directories( "/usr/include/eigen3/" )
#pangolin
find_package(Pangolin)
include_directories( ${Pangolin_INCLUDE_DIRS} )
#Sophus
find_package(Sophus)
include_directories( "/usr/include/sophus/" )
#包含pcl库
find_package( PCL REQUIRED common io)
include_directories( ${PCL_INCLUDE_DIRS})
add_definitions( ${PCL_DEFINITIONS})
list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")
LINK_LIBRARIES(${PCL_LIBRARY_DIRS})
add_executable(joinMap joinMap.cpp)
target_link_libraries(joinMap ${OpenCV_LIBS} ${PCL_LIBRARIES} ${Pangolin_LIBRARIES} ${Sophus_LIBRARIES})
install(TARGETS joinMap RUNTIME DESTINATION bin)
4.2 修改cpp文件
1 pose.txt要绝对路径,和之前一样操作就行
2 图像文件格式需要定位到rgbd目录
两者缺一不可,缺了就opencv疯狂报错,到头来还得看我这里!
4.3实现
build中
./joinMap