OpenCV2.4.13 Ubuntu & Window下安装配置

一、Ubuntu下Opencv安装

系统环境:Ubuntu16.04、OpenCV2.4.13

注:我这里是配置支持CUDA加速的OpenCV

ref from: http://leoybkim.com/wiki/installing-opencv-2.4.13-on-ubunto-16.04/

1、卸载老版本opencv(如需)

$ cd in the "build" folder directory of opencv
$ sudo make uninstall
$ cd ..
$ sudo rm -rf build
$ sudo rm -rf /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 
$ sudo rm -rf /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV
$ sudo rm -rf /usr/local/bin/opencv* /usr/local/lib/libopencv*
$ sudo apt-get --purge remove opencv-doc opencv-data python-opencv
$ sudo apt-get purge libopencv*
$ sudo apt-get autoremove


2、OpenCV安装

step1:依赖包安装

$ sudo apt-get update
# 必选
$ sudo apt-get install -y build-essential cmake git libopencv-dev libgtk2.0-dev pkg-config libavcodec-dev libpng12-dev libavformat-dev libswscale-dev yasm libxine2 libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libqt4-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils
# 可选
$ sudo apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libjasper-dev libdc1394-22-dev


step2:从官网下载源码包

地址: https://opencv.org/releases.html,这里我使用的是 opencv-2.4.13.4版本

对源码解压,并进入该目录中


step3:编译

$ mkdir build
$ cd build
# 简化版 cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
$ cmake -D CMAKE_CXX_COMPILER=/usr/bin/g++ -D CMAKE_C_COMPILER=/usr/bin/gcc -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_TIFF=ON -D WITH_V4L=ON -D BUILD_NEW_PYTHON_SUPPORT=OFF -D WITH_CUDA=ON -D ENABLE_FAST_MATH=ON -D CUDA_FAST_MATH=ON -D WITH_CUBLAS=ON -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_EXAMPLES=OFF -D WITH_QT=ON -D WITH_GTK=ON -D WITH_OPENGL=ON ..
$ make -j2

如果在make的过程中,出现“/usr/lib/x86_64-linux-gnu/libsoxr.so.0: undefined reference to `GOMP_parallel@GOMP_4.0'”相关错误,如下图所示


解决方法:如果已经安装了anaconda,需要将anaconda在Path中的部分注释掉,然后重新cmake一下即可。如果还是不行,可以在cmake部分加上“-D WITH_OPENMP=ON” 参数

step4:安装

$ sudo make install
# 写入opencv路径:
$ sudo sh -c 'echo "usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
$ sudo ldconfig

安装成功效果图:



step5:为程序指定openvc的头文件位置(这一步可以不用,不是必须的!!!)

在~/.bashrc 文件中加入 

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
可以通过pkg-config 命令可以列出关于opencv的配置信息


3、测试

创建 DisplayImage.cpp,内容如下:

#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
	if ( argc != 2 )
	{
		printf("usage: DisplayImage.out <Image_Path>\n");
		return -1;
	}
	Mat image;
	image = imread( argv[1], 1 );
	if ( !image.data )
	{
		printf("No image data \n");
		return -1;
	}
	namedWindow("Display Image", WINDOW_AUTOSIZE );
	imshow("Display Image", image);
	waitKey(0);
	return 0;
}


创建CMakeLists.txt ,内容如下:

cmake_minimum_required(VERSION 2.8)  
project( DisplayImage )  
set( OpenCV_DIR "/usr/share/OpenCV")
find_package( OpenCV REQUIRED )  
add_executable( DisplayImage DisplayImage.cpp )  
target_link_libraries( DisplayImage ${OpenCV_LIBS} ) 

编译、运行测试程序:

#当前位于 CMakeLists.txt、DisplayImage.cpp所在目录
$ mkdir build
$ cd build
$ cmake ..
$ make
$ ./DisplayImage test_img.jpg

小插曲: make时可能会报错“ cannot find -lopencv_dep_cudart”,如下图所示:


可能与开通CUDA有关,我在解决方法 : 在CMakeLists.txt文件中加入了第三行  set( OpenCV_DIR "/usr/share/OpenCV"),就可以make成功了!

网上的方法  还可以:一种 cmake -D CUDA_USE_STATIC_CUDA_RUNTIME=OFF .. 或者可以  在CMakeLists.txt文件中加入 set(CUDA_USE_STATIC_CUDA_RUNTIME OFF)


二、Windows下Opencv安装和配置

可参考:https://blog.csdn.net/poem_qianmo/article/details/19809337

1、下载并解压 opencv-2.4.13.4-vc14.exe
下载地址:https://opencv.org/releases.html


2、环境变量设置

这里本人的OpenCV解压放在D:\opencv

添加环境变量:计算机(右键) -> 属性 -> 高级系统配置 -> 环境变量 -> 系统变量 -> Path

D:\opencv\build\x86\vc14\bin;D:\opencv\build\x64\vc14\bin

环境变量添加完成后需要注销一下才能生效。


3、VS2015配置

这里采用属性表配置方法,下次新建工程时,只要添加这个属性表,即可完成整个配置过程

step1:新建一个空项目



step2: 配置属性表

在菜单栏  视图 -> 其他窗口 -> 属性管理器,打开属性管理器


在Debug Win32右键,选择“添加新项目属性表”,命名为 opencvDebug.props,打开opencvDebug.props进行配置


<1> 在 VC++目录 -> 包含目录 中添加如下三个路径:

D:\opencv\build\include
D:\opencv\build\include\opencv
D:\opencv\build\include\opencv2
<2> 在 VC++目录 -> 库目录 中添加如下路径:
D:\opencv\build\x86\vc14\lib
注:这里选择x86还是x64是跟你在编译程序的时候使用哪个编译器有关。编译器选的是win32,就用x86;编译器选的是X64,就用X64。


不过一般情况下,都是用的win32的X86编译器。所以,无论32还是64位操作系统,配置文件最好都选择x86版。

<3> 在 链接器 -> 输入 -> 附加依赖项 进行依赖项添加

(其实就是将上一步的库目录D:\opencv\build\x86\vc14\lib 中的lib文件添加进来)

opencv_calib3d2413d.lib
opencv_contrib2413d.lib
opencv_core2413d.lib
opencv_features2d2413d.lib
opencv_flann2413d.lib
opencv_gpu2413d.lib
opencv_highgui2413d.lib
opencv_imgproc2413d.lib
opencv_legacy2413d.lib
opencv_ml2413d.lib
opencv_nonfree2413d.lib
opencv_objdetect2413d.lib
opencv_ocl2413d.lib
opencv_photo2413d.lib
opencv_stitching2413d.lib
opencv_superres2413d.lib
opencv_ts2413d.lib
opencv_video2413d.lib
opencv_videostab2413d.lib
19个带d的Debug版lib


<4> 再按照同样的方式配置Release属性表,其他都相同,只是最后附加依赖项的lib列表不同


opencv_calib3d2413.lib
opencv_contrib2413.lib
opencv_core2413.lib
opencv_features2d2413.lib
opencv_flann2413.lib
opencv_gpu2413.lib
opencv_highgui2413.lib
opencv_imgproc2413.lib
opencv_legacy2413.lib
opencv_ml2413.lib
opencv_nonfree2413.lib
opencv_objdetect2413.lib
opencv_ocl2413.lib
opencv_photo2413.lib
opencv_stitching2413.lib
opencv_superres2413.lib
opencv_ts2413.lib
opencv_video2413.lib
opencv_videostab2413.lib
19个不带d的Release版lib


以后再新建其他新项目时,只需 将对应的Debug和Release的属性表添加进来即可。



注:OpenCV2中库的列表文件比较多比较繁琐,在新版的OpenCV3中lib文件得到简化到了两项,添加附加依赖项: opencv_ts_300d.lib、opencv_world300d.lib


测试运行,OK!




猜你喜欢

转载自blog.csdn.net/u011997078/article/details/78811682