Ubuntu 16.04中python调用不同版本OpenCV

需求背景

由于不同代码调用的OpenCV版本不同,在C++中通过CMake设置不同的路径可以调用不同版本的OpenCV,见我这篇简书。但在Python中是在编译OpenCV时就指定了Python的版本的,所以CMake中的方法无法迁移到Python中来,只能另想它法。

解决方案有如下几种

  1. 通过移动cv2.so文件来实现
    由于安装OpenCV时会绑定Python,同时会生成cv2.so包(猜想此包可能记录了安装目录),如果想要运行不同版本的OpenCV时,可以将cv2.so包复制到所要运行的那个python目录下,即可运行。
    如:
#python中cv2.so所在位置:/usr/local/lib/python2.7/dist-packages/cv2.so
#OpenCV2.3所在位置:/media/hdd/opencv-2.3.0/build/cv2.so
#将OpenCV2.3所在的cv.so复制进python中
sudo cp /media/hdd/opencv-2.3.0/build/cv2.so /usr/local/lib/python2.7/dist-packages/cv2.so
  1. 安装不同版本的Python
    可以设置每个Python绑定的OpenCV不同,此方法通过Conda设置最为方便。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容