本系列文章由 youngpan1101 出品,转载请注明出处。
文章链接: http://blog.csdn.net/youngpan1101/article/details/58027049
作者:宋洋鹏(youngpan1101)
邮箱: [email protected]
安装 OpenCV
OpenCV 提供了大量图像开源算法,是计算机视觉中使用极广的图像处理算法库。
安装步骤:【Ref_1】【Removing older versions of OpenCV】
下载安装包
【opencv-3.2.0 编译安装需要的所有安装包_百度云】
opencv_3.2.0_packages.jpg
OpenCV 及所需第三方库各个版本下载链接
【opencv releases】
【opencv_contrib releases】
【ippicv_linux_20151201.tgz】
【protobuf releases】
安装依赖项
[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
$ sudo unzip opencv-3.2.0.zip
$ sudo tar -xzvf opencv_contrib-3.2.0.tar.gz
编译安装
$ cd opencv-3.2.0
$ sudo mkdir build
$ cd build
$ sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib-3.2.0/modules/> ..
在此过程中会出现下载 ippicv_linux_20151201.tgz 或者 protobuf-cpp-3.1.0.tar.gz 包失败的情况,若 下载失败 或者 file DOWNLOAD HASH mismatch
ippicv_linux_20151201.tgz 文件复制并替换 opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ 路径下的同名文件;
protobuf-cpp-3.1.0.tar.gz 复制并替换 opencv_contrib-3.2.0/modules/dnn/.download/bd5e3eed635a8d32e2b99658633815ef/v3.1.0/ 路径下的同名文件。
执行安装
$ sudo make -j4
$ sudo make install
使用命令查看安装版本
$ pkg-config --modversion opencv
实例演示【源码包下载】
CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
# 寻找OpenCV库
find_package( OpenCV 3.2 REQUIRED )
# 添加头文件
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayImage DisplayImage.cpp )
# 链接OpenCV库
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
DisplayImage.cpp
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <stdio.h>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != 2 )
{
std::cout << "usage: DisplayImage <Image_Path>" << std::endl;
return -1;
}
Mat image;
image = imread( argv[1], 1 );
if ( !image.data )
{
std::cout << "No image data..." << std::endl;
return -1;
}
namedWindow("Display Image", CV_WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
编译和运行程序
$ cd build
$ cmake ..
$ make
$ ./DisplayImage <path to image>
查看可执行文件的依赖库
$ ldd ./DisplayImage