ubuntu 16.04LTS 下Code::Blocks + Opencv3.1开发环境配置
1. 数据准备
- CMake:
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.CMake编译Opencv
- 2.1 CMake安装:
- 下载
CMake有两种版本:Source distributions和Binary distributions;
下载Source distributions版本; - cd 至下载文件存放目录,执行:
sudo tar -zxvf cmake-3.0.2.tar.gz
- 执行
sudo ./bootstrap
如果出现如下错误提示,执行sudo apt-get install build-essential
Error when bootstrapping CMake Cannot find appropriate C++ compiler on this system Please specify one using environment variable CXX - 编译
sudo make
- 安装CMake
sudo make install
- 检查
cmake --version
如下图所示时则说明安装成功
- 安装CMake-GUI
sudo apt-get install cmake-qt-gui
- 启动GUI
cmake-gui
如下图所示
- 下载
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库编译的结果。
- cd 至2.2-1的输出目录,目录中文件如下图所示
3.Opencv+Code::Blocks开发环境配置
- 新建Code::Block工程,工程类型为Console application,并将Opencv库拷贝一份至当前工程目录;
- 右击工程,选择Build options菜单;
- 选择Linker setting选项卡,点击Add添加 Link libraries。该步骤是引入自己需要使用的库文件(相对路径),如果不知道自己需要那些库文件,不妨全部加上;
- 选择Search directories选项卡的Compiler子选项卡,添加Opencv库头文件目录路径(相对路径);
- 选择Search directories选项卡的Linker子选项卡,添加3-3中库文件所在的目录(相对路径)
至此,该工程Opencv库配置完毕。
4.测试
在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;
}
执行结果为: