CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。 最新版是3.6.1,下载地址:https://cmake.org/download/;
Opencv3.1:
下载地址:http://opencv.org/downloads.html;该网址提供了Windows和Linux版本的包,Windows版本是一个自解压exe执行文件;linux版本是一个zip包,直接解压即可。因为本人在Windows下已经编译过Opencv,故本文直接使用Windows下解压的包作为源文件;Linux版本的包解压过程类似。
Opencv3.1contrib包:
该包中包含一些比较重要的库,如SHIF特征点检测、MSR等,下载地址 :https://github.com/opencv;下载完成后直接解压即可。
2.2 CMake配置
填写源文件目录和输出目录 点击Config,在弹出对话框中选择Unix Makefiles 点击2. 中的Finish,等待初次配置完成后点击Configure 等待配置完成,此处有一下几个参数需要注意: OPENCV_EXTRA_MODULES_PATH:该参数应设置为Opencv3.1contrib包位置 BUILD_SHARED_LIBS:该参数用以设置库类型,勾选状态表示生产动态库;否则表示生成静态库。 设置完参数后再点击一次Configure点击Generate,等待生成完成在第3步至第4步的过程中,有可能出现以下错误: ICV: Local copy of ICV package has invalid MD5 hash:ICV hash校验值不符,此时可以下载ippicv_linux_20151201.tgz,按错误提示替换对应位置文件即可,替换记得后重新Configure
2.3 编译、链接和安装
cd 至2.2-1的输出目录,目录中文件如下图所示 编译和链接:执行make 该过程比较缓慢执行sudo make install 该命令会安装opencv库至文件夹:/usr/local,在local文件夹中有两个文件夹include和lib,分别用来存放头文件和库文件,即为Opencv库编译的结果。在main函数中添加如下代码
#include <iostream> #include "cv.h" #include "core.hpp" #include "highgui.hpp" #include "imgproc.hpp" using namespace std; using namespace cv; int main() { cv::Mat mat=imread("/media/troubadour/软件/100.jpg"); cvtColor(mat,mat,COLOR_BGR2GRAY); imwrite("test.tif",mat); imshow("图像",mat); waitKey(0); cout << "Hello world!" << endl; return 0; }执行结果为: