Ubuntu下编译安装OpenCV 2.4.13以及Python调用OpenCV方法 |
您所在的位置:网站首页 › ubuntu编译opencv32 › 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 二、编译安装过程 至于为什么编译还是先看看这个: 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 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |