微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CentOS上编译安装OpenCV-2.3.1与ffmpeg-2.1.2

CentOS上编译安装OpenCV-2.3.1与ffmpeg-2.1.2

已測试环境:

  1. CentOS 6.3 32bit
  2. CentOS 6.5 64bit

以前在CentOS 6.3 32bit安装过OpenCV,參见CentOS 6.3中安装OpenCV2.3.1,现在换了64bit系统,大刀阔斧,又一次来一遍。

检查并安装相关程序。确保gtk成功安装。否则无法显示图片

yum install gcc-c++              # g++编译
yum install gtk-devel            # 反正是gtk神马的。不一定就是gtk-devel,能够使用*gtk-devel*匹配
yum install gimp-devel
yum install gimp-devel-tools
yum install gimp-help-browser
yum install zlib-devel
yum install libtiff-devel        # tiff格式图片支持
yum install libjpeg-devel        # jpeg图片支持
yum install libpng-devel         # png图片支持
yum install gstreamer-devel      # 处理MP3、Ogg、MPEG1、MPEG2、AVI等格式的多媒体数据
yum install libavc1394-devel     # 1394音频接口的控制命令集
yum install libraw1394-devel
yum install libdc1394-devel
yum install jasper-devel
yum install jasper-utils
yum install cmake                # 方便编译构建OpenCV的工具
yum install swig
yum install python               # python环境支持
yum install libtool
yum install nasm                 # 汇编工具

安装ffmpeg2.1.2

ffmpeg没有现成的用于CentOS的rpm包。因此须要使用源代码编译安装,

./configure --enable-shared disable-yasm make make install

此时,ffmpeg认安装到/usr/local以下.

安装OpenCV-2.3.1

  1. 使用vi打开CMakeLists.txt文件,找到以下一行后将其凝视(#)

    set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS${CMAKE_CONfigURATION_TYPES} )
    # set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS${CMAKE_CONfigURATION_TYPES} )
    
  2. 使用vi打开CMakeLists.txt文件搜索keywordffmpeg。找到相应位置。

    if(EXISTS /usr/include/ffmpeg/libavformat/avformat.hOR HAVE_FFMPEG_SWSCALE)
    

    确认上面的文件夹是/usr/include,假设在安装ffmpeg时。改动了路径。则作相应的改动,现在我们能够不动。

  3. 到opencv源代码文件夹写下,依次运行

    mkdir release
    cd release
    cmake ../
    make
    make install
    

    等待安装结束,认安装到位置/usr/local/。

測试

#include <cv.h> #include <highgui.h> using namespace cv; int main( int argc,char** argv ) { Mat image; image = imread(argv[1],1 ); if( argc != 2 ||!image.data ) { printf("No image data \n" ); return -1; } namedWindow("display Image",CV_WINDOW_AUTOSIZE ); imshow("display Image",image ); waitKey(0); return 0; }

编写Makefile,

SRC=displayImage.cpp LIB=-L/usr/local/lib/ INC=-I/usr/local/include/opencv/ Test:$(SRC) g++ -o Test $(LIB)$(INC) -lopencv_core -lopencv_highgui -lopencv_ml $^

运行make,没有错误。继续运行,./Test {ImagePathName},出现“不能链接到动态库”的错误。大致例如以下:

error while loading shared libraries: libopencv_core.so.2.3: cannot open shared object file: No such file or directory

解决方法

cd /etc/ld.so.conf.d/ # 该文件夹下存放了各种动态链接库的路径信息 vim usr-lib.conf

加入例如以下信息(opencv的lib所在路径)

/usr/local/lib

保存文件后运行ldconfig命令就可以。

又一次运行。没问题,收工。

原文地址:https://www.jb51.cc/centos/374792.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。