概要: 在学习SLAM的过程中,openCV是无论如何也绕不开的一个库。众所周知,openCV既有python版的,也有C++版的,由于开源SLAM多用C++,所以咱们主要还得用C++版的openCV。C++版的openCV一样是个cmake工程,正常情况下经过安装依赖库、cmake、make、添加路径之后就能正常调用了,但是如何测试你的openCV是否已经安装好了,以及安装的版本是什么,就不是简单的import cv2、cv2.__version__可以解决的咯。这里给出一个简易代码,能完成这个任务。
关键字: openCV; Ubuntu
1 文件准备
首先,准备图像素材:
![](https://i-blog.csdnimg.cn/blog_migrate/900b22158e98b333d246543eea78ceba.jpeg)
其次,上测试代码:
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
cout << "Hello, OpenCV!" << endl;
cout << "OpenCV version: " << CV_VERSION << endl;
cout << "Major version: " << CV_MAJOR_VERSION << endl;
cout << "Minor version: " << CV_MINOR_VERSION << endl;
cout << "Subminor version: " << CV_SUBMINOR_VERSION << endl;
Mat image;
image = imread( argv[1] );
if (image.empty())
{
cout<<"Error! Input image cannot be read...";
return -1;
}
cout<<"width = "<<image.cols<<"\nheight = "<<image.rows<<"\nchannels = "<<image.channels()<<endl;
imshow("image", image);
waitKey(0);
if (image.type() != CV_8UC1 && image.type() != CV_8UC3 )
{
cout<<"Please input RGB image or GRAY image."<<endl;
return 0;
}
return 0;
}
最后,编写CMakeLists:
cmake_minimum_required(VERSION 3.5.0)
set( CMAKE_CXX_FLAGS "-std=c++11" )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
# 申明项目名称
project(helloSLAM)
set(CMAKE_CXX_STANDARD 14)
add_executable(helloSLAM test.cpp)
target_link_libraries(helloSLAM ${OpenCV_LIBS} )
将上面三个文件放到同一个路径下即可开始测试。
2 编译测试
下面进行编译,进入工作路径之后:
mkdir build
cd build
cmake ..
make
一切顺利的话,运行生成的可执行文件,如果能得到下图所示结果,就说明openCV安装成功,并且能得到版本号,这里是3.4.2无疑:
![](https://i-blog.csdnimg.cn/blog_migrate/9dd6cef2b3a286c03a9f3d86f19e9c5d.png)