[学习笔记-opencv篇]ubuntu系统下运行opencv自带双目标定+立体匹配程序

ubuntu系统下运行opencv自带双目标定+立体匹配

  • 双目标定
  • 立体匹配

找了很多opencv自带双目标定的资料,发现大多数都是使用vs+opencv或matlab运行的(也可能是找的还不够),参考了一些资料,写了个cmake,然后一通操作,总算是顺利运行了。撒花~
参考对照着https://blog.csdn.net/a864488081/article/details/78205519?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task和https://www.jianshu.com/p/88ad5441c2ae进行的操作,原博(第一个链接)写的很好。还不是很熟悉怎么写博客,如有问题请多见谅。

双目标定

1、新建一个文件夹
直接打开终端新建文件夹(这里随便起了一个名字calib),建好后在home里就可以看到。

mkdir calib

然后找到opencv自带的程序stereo_calib.cpp,在OpenCV源码目录下(…\opencv-3.2.0\samples\cpp),把stereo_calib.cpp复制到新建的calib文件夹里。
这里要打开stereo_calib.cpp进行一下修改

vim stereo_calib.cpp

改成下图的样子,因为后面会把stereo_calib.xml直接放在calib文件夹里。
[学习笔记-opencv篇]ubuntu系统下运行opencv自带双目标定+立体匹配程序_第1张图片
写完后点击esc,输入:wq保存退出。

2、新建cmake文件
打开calib文件

cd calib

新建cmake文件

vim CMakeLists.txt

写下如下内容。
三处stereocalib是自己定义的项目名称,编译后生成的也是这个名字,可以自行修改。

cmake_minimum_required(VERSION 2.8)
project(stereocalib)
find_package(OpenCV REQUIRED)
add_executable(stereocalib stereo_calib.cpp)
target_link_libraries(stereocalib  ${OpenCV_LIBS})

改完后保存退出。

3、新建build文件夹并编译运行

mkdir build

打开build

cd build

找到官方自带的28张标定图片以及stereo_calib.xml,在(…\opencv-3.2.0\samples\data)里,复制到build文件夹中。
分别执行

cmake ..

make

然后输入./stereocalib(这里的stereocalib是第2步中新建的CMakeLists.txt里自己写的项目名称,保持一致就可以)

./stereocalib

然后就可以看到如下图的输出。
[学习笔记-opencv篇]ubuntu系统下运行opencv自带双目标定+立体匹配程序_第2张图片在calib/build中也会生成两个文件extrinsics.yml和intrinsics.yml,下一步会用到。

立体匹配

1、新建一个文件夹
刚才的操作结束后,先返回到home目录,然后新建一个match文件夹。

mkdir match

然后找到opencv自带的程序stereo_match.cpp,在OpenCV源码目录下(…\opencv-3.2.0\samples\cpp),把stereo_match.cpp复制到新建的calib文件夹里。
这里也要对stereo_match.cpp进行一下修改。

vim stereo_match.cpp

修改的内容如下图,把原来的内容改为第一个框中的内容。
[学习笔记-opencv篇]ubuntu系统下运行opencv自带双目标定+立体匹配程序_第3张图片改完保存退出。

2、新建cmake文件
内容和双目标定里第2步相同。打开match文件

cd match

新建cmake文件

vim CMakeLists.txt

写下如下内容。三处stereocalib是改为stereomatch。

cmake_minimum_required(VERSION 2.8)
project(stereomatch)
find_package(OpenCV REQUIRED)
add_executable(stereomatch stereo_match.cpp)
target_link_libraries(stereomatch ${OpenCV_LIBS})

写完后保存退出。

3、新建build文件夹并编译运行
操作同上。

mkdir build
cd build

随便拷贝上述28张图片中的任意一对图片如left01.jpg和right01.jpg到build文件中(立体匹配用的两张图),把上一步生成的extrinsics.yml和intrinsics.yml也拷贝到build中。
分别执行

cmake ..

make

然后输入./stereomatch。

./stereomatch

就可以看到如下图的输出。
[学习笔记-opencv篇]ubuntu系统下运行opencv自带双目标定+立体匹配程序_第4张图片

你可能感兴趣的:(OpenCV篇,opencv,ubuntu)