原来一直是在Windows下用的opencv,按照网上大神的方法,在工程里加入各种依赖库,直接VS生成可执行文件就ok。
但是在Ubuntu下安装使用opencv已经被搞了两天了……总结一下~~
0、测试opencv是否安装成功
可以通过下面的命令查看opencv的版本信息,如果有输出版本信息的话,说明到目前为止是顺利的。
pkg-config --modversion opencv
1、准备简单的测试程序
为了避免各种opencv版本的不同使用,这里就不用显示图片的程序了,直接打印一个3*3Mat矩阵出来。上代码,保存文件名为test.cpp
#include#include#includeusing namespace cv;
using namespace std;
int main()
{
Mat a(Size(3,3),CV_8UC1);
cout<
2、放大招蓄力ing
2.1 第一种方法 Command Line(命令行参数的方法)
g++ test.cpp -o test `pkg-config --cflags --libs opencv`
./test
话不多说,先放结果:
解释下命令行:上述的命令行中和普通的C++程序不同的是,后面加了pkg-config参数,科普下:pkg-config主要是将第三方库的头文件和库文件位置指出来,然后传给编译器使用,一般在是linux开始编译和寻找链接库时用到。在linux终端输入命令"pkg-config opencv --libs --cflags",得到输出结果如下:【是不是和windows下的使用感觉似曾相识了,这一步就好比windows下导入属性表的过程,即添加opencv的依赖库和include路径】
再具体一点,把参数cflags和libs拆开来看:
pkg-config opencv --cflags
pkg-config opencv --libs
选项 --cflags它是用来指定程序在编译时所需要头文件所在的目录,选项 --libs则是指定程序在链接时所需要的动态链接库的目录。
2.2 第二种方法 CMake工具
step1:新建一个目录用于存放我们的代码文件test.cpp
#include#include#includeusing namespace cv;
using namespace std;
int main()
{
Mat a(Size(3,3),CV_8UC1);
cout<
step2:添加cmake工具编译时所需的文件CMakeLists.txt
CMakeLists.txt文件中的具体内容如下(注:这个文件你可以到你的OpenCV源代码解压出来的文件夹下的/samples/c/example_cmake/文件夹下拷过来,然后再做修改)。这里主要记录下CMakeLists.txt文件内容的大概意思
cmake_minimum_required(VERSION 2.8) //这是对CMake工具最低版本要求,可用命令cmake --version查看当前cmake版本
project( test ) //建立一个工程项目,括号里面是工程名,可以任意给,最后程序编译出来的可执行文件就是这个名字
find_package( OpenCV REQUIRED ) //这是cmake用来查找opencv包用的,不用改
add_executable( test test.cpp ) //这里括号里面的两个参数分别是工程项目名和我们要编译文件名,中间用空格键隔开
target_link_libraries( test ${OpenCV_LIBS} ) //这是我们链接到OpenCV库的环节,只需要改第一个参数工程项目名即可
Step3: 输入命令"cmake ."对当前的工程进行编译,千万不能忘记“点”;
Step4: 输入命令"make"生成可执行文件
Step5: 运行可执行文件test