已測试环境:

  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命令就可以。

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

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

  1. 在CentOS上编译安装MySQL 5.7.13步骤详解

    MySQL 5.7主要特性 更好的性能 对于多核CPU.固态硬盘.锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是用户更关心的. 更好的InnoDB存 ...

  2. 在centos上编译安装mariadb数据库

    一.安装前提(准备数据文件.安装其他依赖的软件) 1.准备数据存放的目录 [root@localhost ~]# fdisk /dev/sdb  (fdisk /dev/sdb 创建一个逻辑分区/de ...

  3. CentOS上编译安装Git

    1. 安装(编译安装)软件 # 先安装git依赖的包 yum install zlib-devel yum install openssl-devel yum install perl yum ins ...

  4. 在CentOS上编译安装PostgreSQL

    http://my.oschina.net/tashi/blog 第一步:准备阶段 获取必需软件包: CentOS中查看是否安装了某个软件的命令:rpm -qa | grep 软件名.which命令可 ...

  5. Firefly-RK3399 上编译安装 OpenCV 3

    原文转自:http://dev.t-firefly.com/thread-12143-1-1.html OS:官方固件 Xubuntu 16.04 1) Install 1.1) Required P ...

  6. 在Linux CentOS上编译CoreCLR

    经过几天的努力,终于解决了在CentOS上编译CoreCLR的问题.最终发现问题是CMAKE_C_FLAGS的设置引起的. 只要在“src/pal/tools/clang-compiler-overr ...

  7. linux源码编译安装OpenCV

    为了尽可能保证OpenCV的特性,使用OpenCV源码编译安装在linux上.先从安装其依赖项开始,以ubuntu 14.04.X为例讲解在Linux上源码编译安装OpenCV,其他linux版本可以 ...

  8. linux源代码编译安装OpenCV

    为了尽可能保证OpenCV的特性,使用OpenCV源代码编译安装在linux上.先从安装其依赖项開始,以ubuntu 14.04.X为例解说在Linux上源代码编译安装OpenCV,其它linux版本 ...

  9. [笔记] Ubuntu 18.04源码编译安装OpenCV 4.0流程

    标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 1080 CUDA:10.0 c ...

随机推荐

  1. Java内存是怎么管理的

    JAVA 内存管理总结 1. java是如何管理内存的 Java的内存管理就是对象的分配和释放问题.(两部分) 分配 :内存的分配是由程序完成的,程序员需要通过关键字new 为每个对象申请内存空间 ( ...

  2. 使用Python发送HTML格式的邮件(收到的邮件有发送方才是正解)

    发送html格式的和普通文本格式差不多,只是MIMEText(content,"html","utf-8"))与MIMEText(content,"p ...

  3. 拉格朗日乘子法以及KKT条件

    拉格朗日乘子法是一种优化算法,主要用来解决约束优化问题.他的主要思想是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有n+k个变量的无约束优化问题. 其中,利用拉格朗日乘子法 ...

  4. WinForm 数据库无限填充树目录 treeView

    我自己想的是处理数据库每一条数据,然后来插入子节点的子节点. 奈何没有插入子节点的子节点的办法,百度来百度去,一看全都是递归. 本来我是绝望的, 但是没办法,老板的需求不能驳回啊,于是就来ctrl c ...

  5. win 10 文件夹 背景 没效果

    韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha  313134555@qq.com

  6. [CC-XYHUMOQ]A humongous Query

    [CC-XYHUMOQ]A humongous Query 题目大意: 有一个长度为\(n(n\le32)\)的以\(1\)开头,\(0\)结尾的\(01\)序列\(S\).令\(f(S)\)表示序列 ...

  7. SpringBoot静态资源目录

    在web开发中,静态资源的访问是必不可少的,如:图片.js.css 等资源的访问. SpringBoot对静态资源访问提供了很好的支持,基本使用默认配置就能满足开发需求. 在传统的web项目中静态资源 ...

  8. HDU 3161 Iterated Difference 暴力

    Iterated Difference Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  9. Codechef December Challenge 2014 Chef and Apple Trees 水题

    Chef and Apple Trees Chef loves to prepare delicious dishes. This time, Chef has decided to prepare ...

  10. Python学习笔记(一):Python基础学习

    总结的内容: 1.变量的命名 2.脚本的注释 3.运算符 4.用户输入语句 一.变量的命名 1.变量用于引用在程序中可能会变化的值.它们被称为变量是因为它们可能引用存储在内存中的不同的值. 2.变量的 ...