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

一、依赖包的安装

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

二、编译安装过程

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

下载源码:
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<opencv2/core.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/imgproc.hpp>
#include<iostream>

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

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/202563.html<

赞 (0)
管理的头像管理
上一篇2025-04-06 06:59
下一篇 2025-04-06 07:01

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注