Opencv编译生成的so文件及使用
来源:互联网 发布:取英文名字的软件 编辑:程序博客网 时间:2024/05/20 22:35
Python配置opencv
原理
Python调用opencv的原理是:opencv编译出共享库文件,python把这个共享库文件作为一个模块加载并使用。
通俗点就是,编译opencv的时候开启python接口选项,编译好了会产生cv2.so(linux下)或者cv2.pyd(windows下)这个共享库文件,python代码中import这个cv2就可以用了。为了能正确import它,往往需要把cv2.so放在python找包能找到的路径下,或者修改PYTHONPATH环境变量让它包含cv2.so所在路径。此外,python的opencv接口中,图像使用numpy数组表示的,所以往往还需要安装numpy、scipy、matplotlib这几个包。
安装
包括python和cv2.so/cv2.pyd两方便的安装
python
windows
windows下请用anaconda,包含了numpy等各种常见python包,非常好用。
你当然可以不用anaconda,这看起来很纯粹,然而坑不少。numpy等包通过pip下载安装的话需要额外的编译器(天知道为啥它是用vs2008编译的,现在都2017了喂!)
如果执意要安装,那么需要vc的编译器,下载:http://www.microsoft.com/en-us/download/details.aspx?id=44266
然后pip install numpy和scipy,以及matplotlib即可。
linux
linux下我也试着用过anaconda,但是觉得不合适的地方在于,平时各种开源软件在配置PYTHONPATH等变量的时候,会比较晕,还是用apt-get装的python更熟悉更容易掌控些。而且python包的编译不会像windows那么麻烦,直接pip就可以了。
sudo pip install numpy scipy matplotlib
cv2.so/cv2.pyd
windows
如果只是很简单的使用一下opencv中最常见的功能,那么不用自己编译!去官网下载windows版opencv,自带编译好的库文件和可执行文件,找到cv2.pyd,放到site-packages路径下就可以了
如果使用了有专利保护的或者其他一些第三方功能,那么很可能需要把opencv和opencv_contrib两个项目一起编译。这样产生的cv2.pyd才是可用的。
记得把cv2.pyd放到路径中。
linux
包管理工具默认是提供opencv的库文件的。比如apt或者yum、dnf去下载即可。
同样,如果是复杂功能、有专利保护功能,就需要手动编译。然后cv2.so放到路径中。
懒人方式
在需要用cv2模块的代码目录中,把cv2.so拷贝过去。因为import包的时候会在当前路径下找包的!
若电脑中同时存在opencv3和opencv2版本,需要在PYTHONPATH中添加cv2.so文件所在的路径,比如/usr/opencv-2.4.13.4/build/lib,在lib路径下有cv2.so文件
- Opencv编译生成的so文件及使用
- gcc生成.so文件及.so文件的使用
- AndroidStudio 2.2.3:编译C++文件、生成so文件及so文件使用
- opencv 修改编译生成的opencv_java3.so
- 手写选择题识别-生成编译opencv项目.so文件-失败
- 把Opencv生成的.a文件打包成so文件
- android NDK开发使用Builder自动编译生成so文件
- aix中使用xlc编译生成动态链接库(shared object)(.so)文件的方法
- aix中使用xlc编译生成动态链接库(shared object)(.so)文件的方法
- 使用eclipse编译生成so
- 如何生成.so和.a文件及使用
- so文件的编译
- 从Android源码编译生成的so文件查找源码
- NDK如何编译别人的.lib文件生成so
- linux下apache的安装及so文件的编译
- Android 编译 使用.SO 文件
- 编译HAL层生成lib.so文件
- Cygwin编译生成So文件时出错
- 求实数绝对值
- 牛客网 wannafly 月赛 完全平方数
- 模块独立性(一种软件设计原则)和面向对象设计原则
- freeswitch mrcp 源码分析--event事件产生
- 顺序表的增删查改&&各类排序问题
- Opencv编译生成的so文件及使用
- python连载第11篇 if 语句
- coding pages 搭建静态博客
- SDUT 2116-数据结构实验之链表一:顺序建立链表
- 三行Python代码搞定人脸识别
- 数据结构实验之查找七:线性之哈希表
- CodeForces 51 E.Pentagon(组合数学)
- lucas 定理,组合数取模
- 第八章习题