Linux下使用OpenCV
参考官方教程
https://docs.opencv.org/3.3.1/d7/d9f/tutorial_linux_install.html
安装依赖
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
第一步,下载源码包,即第一幅图中的第四个链接;
第二步,解压缩, tar -zxvf opencv-3.3.0.tar.gz
,会得到一个opencv-3.3.0的文件夹
第三步,cmake编译。说到这儿,需要强调一下,cmake 编译之前可以提前准备一下必要的工具包,诸如安装java/python等,如果大家不知道准备什么工具也不要紧,假设大家都已经准备好了必要的安装工具,直接开始编译,代码如下
cd opencv-3.3.0
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/software/opencv ..
cmake的参数就不赘述了,也就是根据源码编译并且安装到 /home/software/opencv 这个目录下面,编译完成之后会打印输出一个清单,也就是会安装哪些东西,安装到哪个目录,类似于Windows下面正式安装之前的一个显示页面,我在这个页面吃了一个大亏,因为我需要安装opencv的java相关库,而第一次安装的时候我的系统里面没有安装ant,所以清单里面显示java 一栏中 ant 后面显示 NO,就这个东西导致我安装虽然成功了,但是仍然没有我想要的opencv_java330库,所以这里也提醒一下大家,可以根据自己需要的环境来安装对应的库,如果缺失了就及时补充对应的工具包,然后再安装,也就是在 make 和 make install 之前要确保 cmake 运行之后的清单里面要有自己想要的东西。然后我补充安装 ant ,重新 cmake 编译一次,这一次输出打印的清单里面java 后面的所有内容都是 YES 了。
第四步:make编译。为了加快编译,可以多核编译 make -j7
第五步:安装 make install
安装完成之后到安装目录
/usr/local/
可以发现4个文件夹,如下图:
测试测序
tset.cpp
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main( int argc, char** argv )
{
Mat image;
image = imread(argv[1], 1);
if( argc != 2 || !image.data )
{
printf("No image data \n");
return -1;
}
imshow( "Display Image", image );
waitKey(0);
return 0;
}
CMakeLists.txt
project( main )
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
find_package( OpenCV REQUIRED )
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
ADD_EXECUTABLE(main ${DIR_SRCS} )
target_link_libraries( main ${OpenCV_LIBS} )
mkdir build
cd build
cmake ..
make
./main