• 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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    第19 章 : 调度器的调度流程和算法介绍
    第18 章 : Kubernetes 调度和资源管理
    关于一次配合开发工作而产生的服务器内核参数问题(Android 网络问题)
    第17 章 : 深入理解 etcd:etcd 性能优化实践
    第16 章 : 深入理解 etcd:基于原理解析
    第15 章 : 深入解析 Linux 容器
    第14 章 : Kubernetes Service讲解
    第13 章 : Kubernetes 网络概念及策略控制
    第12 章 : 可观测性-监控与日志
    第11 章 : 可观测性:你的应用健康吗?(liveness和readiness)
  • 原文地址:https://www.cnblogs.com/weisteve/p/2528868.html
Copyright © 2020-2023  润新知