zoukankan      html  css  js  c++  java
  • Fedora17下安装OpenCV2.3.1[转]

    将要使用的版本opencv版本:2.3.1a
    计算机环境:Fedora 14, Gcc 4.5.1, cmake 2.8.4。为了显示界面,貌似还需要gtk2-devel。如果需要进行视频处理,还需要安装ffmpeg-devel。否则基本无法读取视频。如果要 处理图片,还需要安装相应的库:openjpeg-devel和libpng-devel。
    默认情况下,fedora并没有安装这些库,所以需要先安装它们。

    1
    2
    $ su
    # yum install cmake gtk2-devel ffmpeg-devel openjpeg-devel libpng-devel -y

    在安装完前置条件之后,现在开始安装opencv(下载地址).
    下载完之后进行解压,并假设解压路径为OPENCV_ROOT。在$OPENCV_ROOT里创建release文件夹,用于存放编译后的文件。

    1
    2
    3
    $ tar xvf OpenCV-2.3.1a.tar.bz2
    $ cd OpenCV-2.3.1a
    $ mkdir release

    接着可以在release文件夹里创建Makefile

    1
    2
    $ cd release
    $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON ..

    其中选项BUILD_PYTHON_SUPPORT=ON表示添加Python支持。而每个选项前要添加-D参数。opencv还可以添加CUDA 和TBB支持。想要在编译中添加相应的支持。只需添加编译选项 -D WITH_CUDA=ON或 -D WITH_TBB=ON。
    默认情况下,只要安装了CUDA 4.0版本,opencv就会自动添加CUDA支持。但出于种种原因而不想添加CUDA支持,只需添加编译选项 -D WITH_CUDA=OFF即可。
    生成Makefile之后就可以开始编译。

    1
    2
    3
    $ make -j4
    $ su
    # make install

    其中make -j4表示启用4个核进行编译。如果你的计算机是双核的,则应该使用-j2.
    安装完之后,需要设置库路径

    1
    2
    $ su
    # vi /etc/ld.so.conf.d/opencv.conf

    输入/usr/local/lib,并保存退出。或者可以在/etc/profile中添加环境变量

    1
    2
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    export LD_LIBRARY_PATH

    添加完库路径之后,还需要添加环境变量

    1
    2
    PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
    export PKG_CONFIG_PATH

    然后更新库缓存和环境变量

    1
    2
    # ldconfig
    $ source /etc/profile

    测试安装是否成功

    1
    2
    $ cd $OPENCV_ROOT/samples/c
    $ sh build_all.sh

    编译好之后直接试运行

    1
    $ ./facedetect --cascade="/usr/local/share/$OPENCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg

    其中$OPENCV表示解压缩后的文件夹名字,默认为OpenCV-2.3.1a.
    若安装成功,应该会看到输出一副人脸检测的图片。
    注意:
    在实际编程中,如果需要用到opencv的头文件,比如说cv.h,则应该写为

    1
    #include <opencv/cv.h>

    你可以在/usr/local/include文件夹中发现有opencv和opencv2这两个文件夹。而Linux下头文件搜索路径只包含一级 目录。所以需要手动加上文件夹名字opencv/cv.h,否则编译时会提示没有找到cv.h文件。如果不想每次都加opencv/,则可以将 opencv/中的所有文件链接到/usr/local/include中。

    1
    # ln -s /usr/local/include/opencv/* /usr/local/include/

    或者在编译选项中显示说明

    1
    $ gcc XXX.cpp `pkg-config --cflags opencv` -o XXX

    同样,动态链接库也会遇到找不到的问题。比如会出现
    /usr/local/include/opencv2/core/mat.hpp:297: undefined reference to `cv::fastFree(void*)’
    这样的字眼。这个时候需要把动态链接库的路径加到编译选项中。

    1
    $ g++ `pkg-config --cflags --libs opencv` XXX.c -o XXX

    参考资料
    [1] http://www.opencv.org.cn/forum/viewtopic.php?t=14610
    [2] http://opencv.willowgarage.com/wiki/InstallGuide_Linux

    作者:W.M.steve
    出处:http://www.cnblogs.com/weisteve/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    AGC037F Counting of Subarrays
    AGC025F Addition and Andition
    CF506C Mr. Kitayuta vs. Bamboos
    AGC032D Rotation Sort
    ARC101F Robots and Exits
    AGC032E Modulo Pairing
    CF559E Gerald and Path
    CF685C Optimal Point
    聊聊Mysql索引和redis跳表
    什么是线程安全
  • 原文地址:https://www.cnblogs.com/weisteve/p/2528868.html
Copyright © 2011-2022 走看看