本文记录了Ubuntu 14.04下使用源码手动安装OpenCV 3.0的过程。此外记录了在Python中安装及载入OpenCV的方法。

1、安装OpenCV所需的库(编译器、必须库、可选库)

GCC 4.4.x or later
CMake 2.6 or higher
Git
GTK+2.x or higher, including headers (libgtk2.0-dev)
pkg-config
Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
[optional] libtbb2 libtbb-dev
[optional] libdc1394 2.x
[optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev

[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2
libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev
libdc1394-22-dev

2、从官网下载最新opencv源码(2.4以上)http://sourceforge.net/projects/opencvlibrary/

或者github

======================2016.8.13更新===================

遇到类似这样的问题:

/usr/bin/ld: /usr/local/lib/libavcodec.a(avpacket.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libavcodec.a: could not read symbols: Bad value

需要自己编译ffmpeg  加上shared选项

sudo apt-get remove ffmpeg

./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis  --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-shared --enable-pic

make -j16

sudo make install

======================================================
3、编译opencv

将opencv放至任意目录,解压

unzip opencv-3.0.0-rc1.zip

创建编译目录,编译

cd ~/opencv-3.0.0-rc1
mkdir release
cd release

cmake -D  WITH_CUDA=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/net/wanggu/local ..

(推荐用ccmake ..  可以手动配置更多的选项,比如CMAKE_INSTALL_PREFIX, "CUDA_GENERATION"= Auto)

-----------------------

CMAKE_INSTALL_PREFIX  /net/wanggu/software/opencv-master/install

遇到cuda问题:

CUDA_GENERATION Auto

-----------------

(2016.8.24 update)

nonfree里面包含features2d, 要启用的话

在opencv3.x中要先下载 https://github.com/opencv/opencv_contrib

然后ccmake ..

设置以下:

OPENCV_ENABLE_NONFREE            ON

OPENCV_EXTRA_MODULES_PATH        /net/wanggu/software/opencv-master/opencv_contrib/modules

----------------

/usr/local 改成其他的,不然要sudo权限。

(opencv-3.0.0-alpha这个版本不靠谱)

检查python上面有没有检测到,以及位置在哪

make -j8
sudo make install -j8

-----------------------------------

添加cv的python环境变量到.bashrc

export CVPATH=/usr/local/lib/python2.7/site-packages

export PYTHONPATH=$CVPATH:$PYTHONPATH

(也有可能是dist-packages)
服务器上的dist里面是3.0.0
site里面是2.4.10
包含cv2.so和cv.py
-------------------
由于usr目录下的opencv版本经常被人改,所以将CVPATH指向自己的anaconda package下/home/wanggu/anaconda/lib
找到自己编译的cv2.so(在release/lib)和cv.py(opencv-2.4.13/modules/python/src2),然后复制进/home/wanggu/anaconda/lib。
-------------------
 
查看已安装的opencv版本
pkg-config--modversion opencv
 
=============================
python3 anaconda3 ubuntu 装opencv3:
   conda install -c https://conda.binstar.org/menpo opencv3
   conda install -c menpo opencv=2.4.11
   conda install -c menpo opencv   (default is opencv2.4.x)
   conda install -c menpo opencv3
========================
 

4、测试opencv

1) 创建工作目录

mkdir ~/opencv-lena
cd ~/opencv-lena
gedit DisplayImage.cpp

2) 编辑如下代码

#include <stdio.h>
#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char** argv )
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -1;
}

Mat image;
image = imread( argv[1], 1 );

if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);

waitKey(0);

return 0;
}

3) 创建CMake编译文件

gedit CMakeLists.txt

写入如下内容

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

4) 编译

cd ~/opencv-lena
cmake .
make

5) 执行

此时opencv-lena文件夹中已经产生了可执行文件DisplayImage,下载lena.jpg放在opencv-lena下,运行

./DisplayImage lena.jpg

6) 结果

5、安装python-opencv

可直接使用apt安装

sudo apt-get install python-opencv
sudo apt-get install python-numpy

测试:

打开python,import cv模块成功即可。

import cv

import cv2

相关文章:
Ubuntu 12.04下安装OpenCV 2.3.1,图像二值化:http://www.linuxdiyf.com/linux/8615.html

Linux环境下qt/qt creator添加OpenCV的配置:http://www.linuxdiyf.com/linux/9314.html

Ubuntu中安装OpenCv2.1九步曲:http://www.linuxdiyf.com/linux/9848.html

ubuntu14 opencv python 安装的更多相关文章

  1. openCV python 安装

    0, 用 import cv 测试,发现没有安装 opencv 模块. 首先先说本开发环境是在windows xp的环境下进行搭建的. 在搭建的过程中需要保证这三个条件: 1.python需要安装py ...

  2. ubuntu14.04 python + opencv 傻瓜式安装解决方案

    ubuntu14.04  python + opencv 傻瓜式安装解决方案 ubuntu下使python和opencv来做开发的话,总要花那么点时间来配置环境.我偶然间发现了一种傻瓜式安装办法希望快 ...

  3. ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录

    已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照: ...

  4. Ubuntu系统---安装Caffe (+OpenCV+Python+CPU-only)

    安装配置Ubuntu14.04+Caffe (+OpenCV+Python+CPU-only) 记录 [作者:Wu Ping.时间:20180428.] 本人已经安装很多次的Caffe了:从开始的初探 ...

  5. Linux下安装OpenCV+Python支持

    以下说明在Linux下Python和OpenCV结合安装的过程,Python要使用OpenCV模块,则必须导入OpenCV提供的包,所以要提供Python支持,首先在安装OpenCV前安装必要的组件, ...

  6. BugKu 2B+基于python的opencv的安装-------CTF 盲水印的套路

    BugKu杂项-2B 下载图片后,binwalk下跑一跑,发现有个zip,分离. 值得一提的是,这个zip是伪加密的. 但是你在分离的时候,伪加密的图片也给你分离出来了.这两个图片2B和B2肉眼看起来 ...

  7. OpenCV Python 4.0安装

    1.安装OpenCV-Python 如果你是第一次使用OpenCV Python开发包,想要安装OpenCV Python4.0只要执行如下命令行即可: pip install opencv-pyth ...

  8. python安装OpenCV后import cv2报错解决办法

    现在python安装完成后,运行pip install opencv-python安装成功后,import cv2时会失败 看到有人给出下载https://www.lfd.uci.edu/~gohlk ...

  9. ubuntu14.04 编译安装CPU版caffe

      本文,试图中一个干净的ubuntu14.04机器上安装caffe的cpu版本. http://blog.csdn.net/sinat_35188997/article/details/735304 ...

随机推荐

  1. Volley的GET和POST方法

    首先记得加上权限 <uses-permission android:name="android.permission.INTERNET"/> XML代码 <?xm ...

  2. pwnable.kr-flag

    题目: 使用 file 命令查看下载回来的 flag 文件,发现是一个64位的 ELF 可执行程序.通过查看,发现其具有明显的 UPX 压缩标志,所以解压之. 使用命令upx –d 进行脱壳,如果没有 ...

  3. nodejs 转发websocket (websocket proxy)

    const http = require('http') const server = http.createServer((req, res) =>{ res.end('hello world ...

  4. spring框架详解: IOC装配Bean

    1 Spring框架Bean实例化的方式: 提供了三种方式实例化Bean. 构造方法实例化:(默认无参数) 静态工厂实例化: 实例工厂实例化: 无参数构造方法的实例化: <!-- 默认情况下使用 ...

  5. #Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet

    CNN的发展史 上一篇回顾讲的是2006年Hinton他们的Science Paper,当时提到,2006年虽然Deep Learning的概念被提出来了,但是学术界的大家还是表示不服.当时有流传的段 ...

  6. 事件(event),正则

    1.事件(event):事件是可以被 JavaScript 侦测到的行为.网页中的每个元素都可以产生某些可以触发 JavaScript 函数的事件.2.事件源: 触发事件的元素 事件: 被 JavaS ...

  7. 【转】RadControls for Silverlight(学习2-RadDataPager)

    引用地址:http://www.cnblogs.com/forrestsun/archive/2011/05/15/2046894.html <Grid x:Name="LayoutR ...

  8. 了解JavaScript

    JavaScript是什么? JavaScript是一种可以用来给网页增加交互性的编程语言. JavaScript是一种面向对象的语言. JavaScript和Java之间没有太大的关系. JavaS ...

  9. A Brief Review of Supervised Learning

    There are a number of algorithms that are typically used for system identification, adaptive control ...

  10. 细说JAVA反射

    Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性.例如,使用它能获得 Java 类中各成员的名称并显 ...