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文件,搜索关键字ffmpeg,找到对应位置,
    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命令即可。

重新运行,没问题,收工。

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

时间: 2024-08-04 05:16:18

CentOS上编译安装OpenCV-2.3.1与ffmpeg-2.1.2的相关文章

【apache http server安装】CentOS上编译安装Aapche Http Server详细过程

下载apache httpd # wget http://mirrors.cnnic.cn/apache//httpd/httpd-2.4.10.tar.gz 2. 解压 apache httpd # tar xzvf httpd-2.4.10.tar.gz 编译apache httpd [[email protected]]# ./configure checkingfor chosen layout... Apache checkingfor working mkdir -p... yes

在CentOS上编译安装MySQL+安装问题解决+安全优化

0.说明 当然,MySQL的安装方法多种多样,在CentOS上,你可以采用YUM的方式安装,这样的好处是:快速方便.基本上,它会帮你解决所有的函数库依赖问题,正常情况下,只要YUM执行完成,那么MySQL也就可以使用了. 但我更倾向于使用编译的方式来安装MySQL,原因也很简单:除了有详细的官方文档外,你还可以非常清楚地知道你自己在做什么,这点在以后MySQL运行出现问题时将会有很大的帮助! 但即便是按照官方文档来安装,你也会遇到各种各样的问题,这里,我将呈现一个完整的过程给大家,直到完成下面的

在CentOS上编译安装Nginx+实验环境搭建+测试

0.说明 Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理.缓存服务软件,很有必要搭建实验环境来对其进行学习. 1.实验环境 本次实验的测试环境使用的宿主机操作系统为Windows 7,在Vmware虚拟机安装CentOS 6.5,说明如下: 宿主机操作系统Windows 7 虚拟机安装的操作系统CentOS 6.5 虚拟机操作系统上网方式NAT 而当使用NAT的方式进行上网时虚拟机.宿主机之间的网络连接关系可如下所示: 关于为什么网络拓扑结构是这样的,这

在Centos上编译安装nginx

实验环境: OS: CentOS 6.6 nginx:nginx-1.6.2.tar.gz 前期准备:安装开发包组件[[email protected] tmp]# yum -y groupinstall "Development tools" "Server Platform Development"[[email protected] tmp]# yum -y install pcre-devel 一. 编译安装: [[email protected] tmp]

在centos上编译安装mariadb数据库

一.安装前提(准备数据文件.安装其他依赖的软件) 1.准备数据存放的目录 [[email protected] ~]# fdisk /dev/sdb  (fdisk /dev/sdb 创建一个逻辑分区/dev/sdb1)Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0xa592b3

在CentOS上编译安装PostgreSQL

http://my.oschina.net/tashi/blog 第一步:准备阶段 获取必需软件包: CentOS中查看是否安装了某个软件的命令:rpm -qa | grep 软件名.which命令可查看某个软件的安装路径.使用 yum install 包名 来安装软件包. 1.GNU make的版本3.80以上[[email protected] ~]# rpm -qa | grep makemake-3.81-20.el6.x86_64 [[email protected] ~]# make

CentOS 6上编译安装AMP详解

在CentOS 6上编译安装AMP     A:Apache(httpd)     M:MySQL or MariaDB     P:php 目录: 一.准备工作 二.编译安装Apache(httpd) 三.编译安装MariaDB 四.编译安装PHP 编译安装AMP的优点: 根据生产环境灵活定制程序 优化编译参数,提高性能 解决不必要的软件依赖 一.准备工作 1.需要的软件包及版本号: httpd-2.4.27(apr-1.5.2+ apr-util-1.5.4) + MariaDB-5.5.5

CentOS 7上编译安装 apache 2.4.25

在CentOS 7上编译安装 apache 2.4.25 源码包,并启动此服务. 配置环境 Systemctl disable firewalld Systemctl stop firewalld /etc/selinux/config 关闭selinux Sed –i 's/SELINUX=enforcing/SELINUX=disable/' /etc/selinux/config 重启生效(getenforce查看是否生效) yum install gcc apr-devel apr-ut

在Linux CentOS上编译CoreCLR

经过几天的努力,终于解决了在CentOS上编译CoreCLR的问题.最终发现问题是CMAKE_C_FLAGS的设置引起的. 只要在“src/pal/tools/clang-compiler-override.txt”中删除“SET (CMAKE_C_FLAGS_INIT "-Wall -std=c11") ”,在“src/pal/tests/CMakeLists.txt”添加“SET (CMAKE_C_FLAGS "-Wall -std=c11")”,就能编译了.