Ubuntu 下使用源码手动安装OpenCV 3.0
来源:互联网 发布:1080p网络摄像头 编辑:程序博客网 时间:2024/04/30 03:05
本文记录了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
3、编译opencv
将opencv放至任意目录,解压
unzip opencv-3.0.0-rc1.zip
创建编译目录,编译
cd ~/opencv-3.0.0-rc1
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install
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
--------------------------------------分割线 --------------------------------------
Ubuntu Linux下安装OpenCV2.4.1所需包 http://www.linuxidc.com/Linux/2012-08/68184.htm
Ubuntu 12.04 安装 OpenCV2.4.2 http://www.linuxidc.com/Linux/2012-09/70158.htm
CentOS下OpenCV无法读取视频文件http://www.linuxidc.com/Linux/2011-07/39295.htm
Ubuntu 12.04下安装OpenCV 2.4.5总结 http://www.linuxidc.com/Linux/2013-06/86704.htm
Ubuntu 10.04中安装OpenCv2.1九步曲 http://www.linuxidc.com/Linux/2010-09/28678.htm
基于QT和OpenCV的人脸识别系统 http://www.linuxidc.com/Linux/2011-11/47806.htm
[翻译]Ubuntu 14.04, 13.10 下安装 OpenCV 2.4.9 http://www.linuxidc.com/Linux/2014-12/110045.htm
QT下的安装:
背景:
Ubuntu 15.04
Qt 5.2.1
OpenCV 3.0.0
资料全部来源于网络,我只是资料的搬运工。
首先,我们应该安装几个必要的东西
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
这里,我感觉有一些python相关的,不用安装(我这里使用的是c++)。我没有进行验证。
其次 GCC还是要装一下的,虽然Ubuntu系统会自带,但是还是提一句吧:
sudo apt-get install gcc
去OpenCV官方网站下载Linux版本的OpenCV,这里我要提一句,不同的OpenCV的编译方式,大致相同,但是仍然有一定的差异,这要注意。
下载好了,就可以将压缩文件进行解压,我这里一般解压到/home/x文件夹下,x是用户名。
解压好了,进入/home/x/opencv-3.0.0
这里的网上的教程提供了一种方法,进行编译。在opencv-3.0.0中创建一个叫做release的文件夹(名字无所谓的)
这里我们需要cmake这个东西,使用它可以进行编译,cmake在前面的命令中已经安装好了,我们不用操心了。
这里需要这样的一个命令,cmake编译OpenCV源码,所有的lib文件都会被安装到/usr/local目录下
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local
这个地方其实要花费很长时间的,其中有可能会存在错误,我这里一直很顺,我也不能给出具体措施,抱歉。
安装
make
sudo make install
环境变量pkg_config_path 提供编译时和运行时库的路径查询。pkg-config 是通过库提供的一个 .pc 文件获得库的各种必要信息的,包括版本信息、编译和链接需要的参数等。这些信息可以通过 pkg-config 提供的参数单独提取出来直接供编译器和 链接器使用。使用 pkg-config 的 --cflags 参数可以给出在编译时所需要的选项,而 --libs 参数可以给出 链接时的选项。
在上述opencv 的安装结束后,pkg-config 的读取目录 /usr/local/lib/pkgconfig/ 下已经有opencv.pc。
上面这段是引用的,当然,这里还需要一个步骤,修改系统环境变量
编辑环境变量
<em>hugo
@hugo
-ThinkPad-Edge:~/Downloads/OpenCV-
2.4
.
1
/build$ sudo vim /etc/ld.so.conf.d/opencv.conf</em>
添加opencv库所在路径:
<em>/usr/local/lib
</em>
<em>hugo
@hugo
-ThinkPad-Edge:~/Downloads/OpenCV-
2.4
.
1
/build$ sudo ldconfig
</em>
<em>hugo
@hugo
-ThinkPad-Edge:~/Downloads/OpenCV-
2.4
.
1
/build$ sudo vim /etc/bash.bashrc
</em>
在末尾添加:
<em>PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH<br><br><br>
</em>上面的依旧是引用部分,到这里,如果没有错误,基本上就没什么问题了。不要掉以轻心,还要有一些东西需要做一下。<br>当我们使用g++进行编译的时候,需要注意这么几点
g++ `pkg-config opencv --cflags --libs opencv` -o test test.cpp -I /usr/local/include/opencv -L /usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_objdetect -lopencv_imgcodecs
上面的编译命令,也是来自引用 ,注意两点:
1,'pkg-config opencv --cflags --libs opencv'这个东西,要有的,没有的话,编译不成功。
环境变量pkg_config_path 提供编译时和运行时库的路径查询。pkg-config 是通过库提供的一个 .pc 文件获得库的各种必要信息的,包括版本信息、编译和链接需要的参数等。这些信息可以通过 pkg-config 提供的参数单独提取出来直接供编译器和 链接器使用。使用 pkg-config 的 --cflags 参数可以给出在编译时所需要的选项,而 --libs 参数可以给出 链接时的选项。
2,要有很多链接文件,否则就汇出问题,链接文件位于/usr/local/lib中,OpenCV3.0.0中需要注意的地方是opencv_imgcodecs这个链接文件,在其他版本的OpenCV中没有需要,这里我们一定要将它放进来,要不然会有问题。
第二部分,Qt的配置
我们如果按照上面的内容进行配置,应该问题不算大的。
Qt的配置,主要在项目文件中添加如下
INCLUDEPATH+=/usr/local/include\/usr/local/include/opencv\/usr/local/include/opencv2LIBS+=/usr/local/lib/libopencv_highgui.so\/usr/local/lib/libopencv_core.so\/usr/local/lib/libopencv_imgproc.so\/usr/local/lib/libopencv_imgcodecs.so我们可以看到,上面的这些,和shell中使用g++编译的链接库什么的很相似。尤其是/usr/local/lib/libopencv_imgcodecs.so着一条别忘了。
引用资料如下,万分感谢!!!
http://blog.163.com/huai_jing@126/blog/static/171861983201311103411229/
http://www.douban.com/note/433807086/
http://www.2cto.com/os/201404/291798.html
http://blog.csdn.net/WL2002200/article/details/45741635
http://www.cnblogs.com/tornadomeet/archive/2012/07/10/2584702.html
- Ubuntu 下使用源码手动安装OpenCV 3.0
- Ubuntu下OpenCV源码编译安装 转
- ubuntu下不使用管理员权限安装opencv
- ubuntu下mysql手动安装
- Ubuntu下安装opencv
- Ubuntu下安装OpenCV
- Ubuntu下安装opencv
- ubuntu下安装opencv
- ubuntu下安装OpenCV
- ubuntu 下安装Opencv
- Ubuntu下安装OpenCV
- Ubuntu下openCV安装
- Ubuntu下安装OpenCV
- ubuntu下opencv安装
- ubuntu下安装opencv
- Ubuntu下安装OpenCV
- ubuntu下安装openCV
- Ubuntu下安装OpenCV
- 数组排序
- 学习笔记
- 实现多线程下载
- mysql 读写分离
- 【学习之路】MySQL(2)
- Ubuntu 下使用源码手动安装OpenCV 3.0
- App调试内存泄露之Context篇(上)
- Python特殊语法:filter、map、reduce、lambda [转]
- iOS学习之网络编程(1)
- Access restriction错误
- OpenCV:Mat元素访问方法、性能、代码复杂度以及安全性分析
- App调试内存泄露之Context篇(下)
- 生产问题1015
- 走迷宫