美文网首页SLAM、OpenCV、Linux、ROS等
Ubuntu 16.04中python调用不同版本OpenCV

Ubuntu 16.04中python调用不同版本OpenCV

作者: 一恪slam | 来源:发表于2018-12-15 17:57 被阅读0次

    需求背景

    由于不同代码调用的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设置最为方便。

    相关文章

      网友评论

        本文标题:Ubuntu 16.04中python调用不同版本OpenCV

        本文链接:https://www.haomeiwen.com/subject/bqbahqtx.html