Anaconda使用问题:OpenCV包的配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nxcxl88/article/details/52968372

使用Conda指令安装的opencv能在tensorflow下正常使用,但是到了Caffe下面,import Caffe的过程中可能会提示undefined symbol错误,看到错误提示含有imencode的字样,因此可能是OpenCV的版本不匹配的原因。

一个可行的办法就是替换OpenCV的版本,目前新版的conda中已经有了完善的版本,可以使用conda search opencv来查找支持的版本,如果要选择安装其中一个版本(如2.4.9),可以使用如下的指令:

conda install opencv=2.4.9

另一个可行的方案是将Anaconda下面的OpenCV替换成自己编译的OpenCV库。

修改的方式如下:

假设Anaconda的安装路径是 /anaconda2,那么

1. 将/anaconda2安装路径下opencv相关的库移至其他地方,可使用的指令是:

mkdir ../backupPathOpenCVLibs

mv libopencv* ../backupPathOpenCVLibs

2. 修改/anaconda2/lib/pkgconfig文件夹下OpenCV包的指向文件 opencv.pc。

原文件定义:

prefix=
exec_prefix=${prefix}
libdir=
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include

...
可以将prefix修改为自己的OpenCV路径。

3. 这时如果在Anaconda的python环境下测试会发生cv2.so的错误。因为还需要替换另外两个文件cv.py 和 cv2.so,如果成功编译安装opencv的python接口,那么应可以找到这两个文件,将自己版本cv.py 和 cv2.so拷贝至/anaconda2/lib/python2.7/site-packages中替换原有文件。

4.这时如果在Anaconda的python环境下测试会发生 Segmentation fault。这时候只要删除/anaconda2/lib/python2.7/site-packages中的cv.pyc即可。


注意Anaconda本身和使用source activate激活的运行环境两者使用的是不同的lib路径,如果是解决某个运行环境的问题,还需要到该环境的文件夹中寻找。



猜你喜欢

转载自blog.csdn.net/nxcxl88/article/details/52968372
今日推荐