ubuntu 14.04 64位 安装Opencv3.1.0 (包含opencv_contrib模块)
写在前边:
据官方说法,目前还不是太稳定的算法模块都在opencv_contrib里边,由于不稳定,所以不能在release版本里发行,只有在稳定以后才会放进release里边。但是这里边有很
|
写在前边: 据官方说法,目前还不是太稳定的算法模块都在opencv_contrib里边,由于不稳定,所以不能在release版本里发行,只有在稳定以后才会放进release里边。但是这里边有很多我们经常要用的算法,比如SIFT,SURF等(在xfeatures2d 模块里边)。官网提供了说明,可以把opencv_contrib扩展模块添加编译到已安装的opencv3.0.0里边,也可以安装的时候直接把扩展模块编译进去一并安装。
1.依赖关系: GCC 4.4.x or later CMake 2.8.7 or higher Git GTK+2.x or higher,including headers (libgtk2.0-dev) pkg-config Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev,python-numpy) ffmpeg or libav development packages: libavcodec-dev,libavformat-dev,libswscale-dev [optional] libtbb2 libtbb-dev [optional] libdc1394 2.x [optional] libjpeg-dev,libpng-dev,libtiff-dev,libjasper-dev,libdc1394-22-dev注:官方文档中虽然说其中一些依赖包是可选的,但是最好还是都装上,以防出问题。 以上依赖包可用以下命令安装:
2.下载源码: a.可以从OpenCV官网直接下载:http://opencv.org/downloads.html b.也可以从github上clone:
3.CMake Opencv源码: 建立一个编译目录(例如:/build)把cmake后的文件都放在这里边。
然后开始cmake,这里需要注意几个cmake的参数,比较重要。 注:命令中最后的" .. "(空格+两个点)千万不要忘记 其中 CMAKE_BUILD_TYPE=Release / Debug OPENCV_EXTRA_MODULES_PATH 就是用来指定要编译的扩展模块,后边加上刚下载的opencv_contrib模块的路径即可。 这里官方文档上还给出了其他一些参数,但是我没用过,这里就不再描述了。有需要的可以查看http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html 进入上述中新建的build文件目录中,进行如下命令 eg: [csharp] view plain copy cmake-DCMAKE_BUILD_TYPE=Release-DOPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules/-DCMAKE_INSTALL_PREFIX=/usr/local../opencv linux文件目录结构如下
opencv ---opencv ---opencv_contrib ---build 4.把代码编译成可执行文件,这里官方推荐使用多进程编译,推荐七个进程:
5.安装。
6.运行测试。 我是用Python+opencv的,我这里直接运行opencv自带的python的例子程序 结果:
参考文献: http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html https://github.com/Itseez/opencv_contrib/blob/master/README.md 转载:http://www.cnblogs.com/asmer-stone/p/5089764.html 在使用c++语言进行运行 当运行出现如下错误时 ./a.out: error while loading shared libraries: libopencv_core.so.3.1: cannot open shared object file: No such file or directory 首先进行配置: 进入终端,输入 sudo vi /etc/ld.so.conf.d/opencv.conf 然后在文件中插入以下文字 /usr/local/opencv/ 输入:wq 退出 在终端中输入 sudo ldconfig 即可 http://stackoverflow.com/questions/19164343/opencv-libopencv-core-so-2-4-cannot-open-shared-object-file-no-such-file-or 然后新建文件 vi test.cpp ,在文本中输入如下代码 copy #include<iostream> #include<opencv2/highgui/highgui.hpp> usingnamespacestd; namespacecv; intmain(intargc,char*argv[]) { conststringWINDOW_NAME="lena"; stringINPUT_PIC="lena.jpg"; MatsrcImg=imread(INPUT_PIC); if(srcImg.empty()) { cout<<"imagedonotexist"<<endl; return-1; } namedWindow(WINDOW_NAME); imshow(WINDOW_NAME,srcImg); waitKey(0); return0; }注: 图片和.cpp 在相同的目录下 有三种常规方式进行编译,链接和执行的。 1.使用终端命令
进行编译和链接 ,在命令行中输入 或者 copy g++test.cpp`pkg-config--libsopencv` 然后执行 ./a.out 即可 2. 使用Makefile文件 在当前目录下建立一个Makefile 文件,然后在文件中添加如下内容: [plain] copy #firstway main:main.o g++-omainmain.o-lopencv_core-lopencv_highgui-lopencv_imgproc-lopencv_imgcodecs main.o:main.cpp g++-cmain.cpp #secondway #CFLAGS=`pkg-config--cflagsopencv` #LIBS=`pkg-config--libsopencv` #%:%.cpp #g++-o$@$<$(CFLAGS)$(LIBS) 添加完成后,在当前目录先执行 eg: make main 执行完成后,输出main 文件,执行 ./main 即可 3. 使用Cmake 的方式 在当前目录中添加CMakeLists.txt 文件,在文件中添加如下内容: copy
cmake_minimum_required(VERSION2.8)
PROJECT(name)
find_package(OpenCVREQUIRED)
set(NAME_SRC
./main.cpp
)
#set(NAME_HEADERS
#include/header.h
#)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
link_directories(${CMAKE_BINARY_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH${CMAKE_BINARY_DIR}/bin)
#add_executable(name${NAME_SRC}${NAME_HEADERS})
add_executable(name${NAME_SRC})
target_link_libraries(name${OpenCV_LIBS})
然后切换到build目录中,使用 cd build 在build文件夹目录中 执行cmake 命令,使用示例如下: cmake .. // .. 代表上一级目录 , make 执行完成后,会有bin 目录生成,进入bin目录,cd bin 发现有 name 文件 执行 ./name 命令即可。 (编辑:鲜蔬坊站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
