Ubuntu下编译安装OpenCV 2.4.13以及Python调用OpenCV方法

2021-06-07 10:15:45 浏览数 (1)

一、依赖包的安装

1. build-essential 软件包,为编译程序提供必需软件包的列表信息,这样软件包才知道头文件、库函数在哪里。

sudo apt-get install build-essential

2. 下面依赖关系主要是为了能够支持读写图片以及视频等。

sudo apt-get install  libgtk2.0-dev libavcodec-dev libavformat-dev  libtiff4-dev  libswscale-dev libjasper-dev

3. 安装cmake

sudo apt-get install cmake

4.安装pkg-config,它是一个提供从源代码中编译软件时查询已安装的库时使用的统一接口的计算机软件。

sudo apt-get install pkg-config

二、编译安装过程

至于为什么编译还是先看看这个:

g 编译运行c 代码流程以及动态库静态库的创建与使用  https://www.linuxidc.com/Linux/2018-10/155023.htm

下载源码:

opencv 2.4.13官网

目前还是推荐下2.4版本的吧,一直在更新,并且库比较全。

解压后进入opencv的目录。

1. 使用cmake来检测编译环境以及生成makefile以及其他project信息,在使用cmake过程可以设置一些参数。

cd opencv-2.4.9 

mkdir release 

cd release 

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

CMAKE_BUILD_TYPE=RELEASE表示release版本

CMAKE_INSTALL_PREFIX=/usr/local表示安装的目录,其中包含include等头文件

2. 使用make编译

make

3.使用make install安装

sudo make install

三、配置lib库路径以及环境变量

1 配置lib库路径

配置lib库是为了能让编译你自己写的c 代码的时候能够找到所包含的opencv模块的动态库或者静态库,其中编译生成的动态库在这个文件夹下:/usr/local/lib/

打开文件

sudo gedit /etc/ld.so.conf.d/opencv.conf

添加库目录

/usr/local/lib

保存后执行下面命令使之生效

sudo ldconfig

2 配置环境变量

完成了动态库的共享,还不能使用opencv来编程,还需要为程序指定openvc的头文件位置。这里使用pkg-config命令来完成。首先在 /etc/profile 中添加pkgconfig路径,操作如下:

打开文件

sudo gedit /etc/profile

在文本最后添加

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

执行下面命令使之生效

source /etc/profile

其中pkg-config 维护着一个关于opencv的配置文件,这个文件(opencv.pc)在目录 /usr/local/lib/pkgconfig,这个文件记录着opencv的一些动态库信息,还有头文件信息,通过pkg-config --libs opencv命令和pkg-config --cflags opencv可以查看具体信息。

四、编译测试代码并测试

1 编译

在samples/c目录下找到build_all.sh并运行。

./build_all.sh

2 测试

变成绿色的为可执行文件,运行下面命令可以测试,例如:

./find_obj1

3 用g 编译自己的代码

g _opencv# g cat.cpp -I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -o cat

其中-I表示include的目录,-L表示lib的目录,-lopencv_core指利用opencv_core.so这个动态链接库。这样就可以编译啦。

其中代码为:

#include

#include

#include

#include

using namespace std;

using namespace cv;

int main()

{

        Mat src = imread("cat.jpg");

        //Mat dst;

        //Canny(src, dst, 0.1, 0.1);

        //imshow("dst", src);

        //waitKey();

        cout<<"read successful!"<<endl;

        return 0;

}

效果:

root@52acd6c79e97:/home/huxiang_j/work/jni/g _opencv# g cat.cpp -I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -o cat

root@52acd6c79e97:/home/huxiang_j/work/jni/g _opencv# ls

cat  cat.cpp  cat.jpg

1234

也可以利用pkg-config –cflags opencv和pkg-config –libs opencv这俩个来编译,一个指向头文件,一个指向lib库文件。

root@52acd6c79e97:/home/huxiang_j/work/jni/g _opencv# g `pkg-config --cflags opencv` cat.cpp -o cat `pkg-config --libs opencv`

root@52acd6c79e97:/home/huxiang_j/work/jni/g _opencv# ls

cat  cat.cpp  cat.jpg

root@52acd6c79e97:/home/huxiang_j/work/jni/g _opencv# ./cat

read successful!

五、Python使用opencv

1 先用which python找到python的安装目录(每个人的不同,可以自行更改),只需要把opencv编译的cv2.so和原始的cv.py拷贝到python安装目录下的site-packages路径下面即可。

例如:

cp opencv_dir/build/lib/cv2.so ENV/lib/python2.7/site-packages/

cp opencv_dir/modules/python/src2/cv.py ENV/lib/python2.7/site-packages/

有的也是复制到这,因为python安装的位置不同

/usr/local/lib/python2.7/site-packages

2 测试python例子

在opencv_dir/samples/python2可以找到python的测试用例,同理可以运行那些绿色的可执行文件,例如:

./find_obj.py

OpenCV官方教程中文版(For Python) PDF  https://www.linuxidc.com/Linux/2015-08/121400.htm

Ubuntu 14.04安装OpenCV2.4.9  https://www.linuxidc.com/Linux/2016-07/132884.htm

Ubuntu 16.04上用CMake图形界面交叉编译树莓派的OpenCV3.0 https://www.linuxidc.com/Linux/2016-10/135914.htm

Ubuntu 16.04中安装OpenCV 2.4.11  https://www.linuxidc.com/Linux/2016-07/132882.htm

Ubuntu 16.04下Matlab2014a Anaconda2 OpenCV3.1 Caffe安装  https://www.linuxidc.com/Linux/2016-07/132860.htm

Linux上安装和编译OpenCV3.0.0  https://www.linuxidc.com/Linux/2017-07/145446.htm

Ubuntu 16.04下OpenCV安装笔记和例程 https://www.linuxidc.com/Linux/2017-08/146027.htm

Ubuntu 16.04下TensorFlow Caffe OpenCV3.1 Theano部署  https://www.linuxidc.com/Linux/2017-01/139503.htm

Ubuntu 16.04 编译安装OpenCV 3.1及OpenCV多版本切换 https://www.linuxidc.com/Linux/2017-01/139325.htm

[翻译]Ubuntu 14.04, 13.10 下安装 OpenCV 2.4.9  https://www.linuxidc.com/Linux/2014-12/110045.htm

Ubuntu 安装 OpenCV 2.4.9  https://www.linuxidc.com/Linux/2016-12/138293.htm

Ubuntu 17.04下OpenCV源码编译安装  https://www.linuxidc.com/Linux/2017-10/147316.htm

0 人点赞