linux怎么配置opencv

linux怎么配置opencv,第1张

一、安装

1 安装cmake及一些依赖

sudo apt-get install cmake

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev

libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev

2 安装opencv

从官网下载opencv并解压,cd命令进入opencv的目录

cmake .

sudo make

sudo makeinstall

二、配置

1 将opencv的库加入到路径,从而让系统可以找到

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

末尾加入/usr/local/lib,保存退出

sudo ldconfig #使配置生效

sudo gedit /etc/bash.bashrc

末尾加入

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

export PKG_CONFIG_PATH

保存退出

sudo source /etc/bash.bashrc #使配置生效

sudo updatedb #更新database

三、测试使用

打开opencv2.4.9目录下的sample/c

#build

./build_all.sh

使用下面的一个sample进行测试

./find_obj

Finished

在自己的Mac上写了一个基于OpenCV的简单程序;需要传给其他人共同调试,但是可执行文件在他人的Mac上无法运行;执行时会提示:

这样就引申出来一个问题: 在xcode下编译出的程序,在开发机器上运行是没有问题的。但是给其他用户用,就可能出问题。因为用户不一定有这个库。

有两种方法可以解决这个问题;一是给其他用户也安装依赖的库文件;二是将所有的dylib随行发布,消除依赖。

第一种方案不考虑,大部分时候这样做并不现实;下面说说如何随行发布dylib。

单纯将依赖的dylib文件拷贝到可执行文件目录下一同传输过去是不能消除依赖的;执行的时候还是报错;

在编译一个动态库的时候, 你需要指定 INSTALL_PATH. 也就是它的安装路径;编译完成后如果一个可执行程序使用了该动态库, 那么在编译可执行程序的时候, 动态库的 INSTALL_PATH 会被记录到可执行程序中, 用来定位这个动态库。

因此我们首先需要将用到的dylib文件都拷贝到可执行文件目录下,然后改变动态库的INSTALL_PATH;将其改到可执行文件所在目录;

需要注意的是 :如果依赖多个动态库,用到的动态库已会依赖其他动态库,因此用到的所有的动态库的依赖动态库路径都需要修改。

以OpenCV为例子,假设最终编译出来的可执行文件为 macimgproc ;执行命令: otool -L macimgproc 可看到如下的输出:

说明macimgproc依赖所有的OpenCV动态库文件;因此首先需要将所有动态库文件拷贝到macimgproc所在目录,然后需要将macimgproc文件中的所有 /usr/local/opt/opencv/lib/libopencv_xxx 修改为 @executable_path/libopencv_xxx ;

@executable_path 表示可执行文件所在目录;指示所有OpenCV动态库从可执行文件所在目录查找;

更多 @executable_path 的介绍以及其他变量参见文章 @rpath, @loader_path, @executable_path 。

使用命令 install_name_tool -change {old.dylib} {new.dylib} {filename} 修改动态库的INSTALL_PATH,例如:

执行后重新 otool -L macimgproc 可看到如下的输出:

依次修改所有依赖即可。

整个OpenCV库大概有19个dylib文件,因此写了一个简单的批量修改脚本:

http://blog.csdn.net/openglnewbee/article/details/17783909

如何使用第三方的dylib

@rpath, @loader_path, @executable_path

Apple Developer:Overview of Dynamic Libraries

Apple Developer: Run-Path Dependent Libraries

*** 作步骤如下:

1、下载opencv for windows安装包,本例是目前最新的安装包opencv-2.4.8版本。双击打开解压,本例的解压目录为D:\Program Files。

2、解压后D:\Program Files下多了一个opencv文件夹,里面只有两个文件,如下图所示:

3、右键单击计算机-属性-高级系统设置-高级-环境变量,在系统变量中查找PATH变量中添加“D:\Program Files\opencv\build\x86\vc10\bin”路径。

4、新建一个空白项目(win32控制台项目)点击项目(菜单项)-属性-VC++目录,按照下图提示,添加目录:可执行文件目录D:\Program Files\opencv\build\x86\vc10\bin 包含目录D:\Program Files\opencv\build\include D:\Program Files\opencv\build\include\opencv D:\Program Files\opencv\build\include\opencv2 库目录D:\Program Files\opencv\build\x86\vc10\lib

5、单击 链接器-输入-附加依赖项,添加链接库,将D:\Program Files\opencv\build\x86\vc10\lib中所有的lib库文件添加进去。点击确定,OK,opencv的配置完成。

6、在工程文件夹源文件中,新建一个c++源文件,找一个简单的opencv的代码,运行尝试一下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11826443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存