一、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 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 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
#include
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out \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
这里关于版本opencv3.0支持vc11(Visual Studio 2012)和vc12(Visual Studio 2013),opencv3.2只支持vc14(Visual Studio 2015)
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_ts300d.lib、opencv_world300d.lib
程序中包含头文件即可:
#include
测试运行,OK!