ubuntu14.04 python2.7 安装配置OpenCV3.0

时间:2022-04-18 01:56:47

环境:ubuntu14.04  python2.7

内容:安装并配置OpenCV3.0

今天按照OpenCV官网上的步骤装了OpenCV但是,装好之后python提示“No module named cv2”

首先,安装OpenCV的步骤:

OpenCV官网的安装步骤:http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation

1.下载OpenCV:https://codeload.github.com/Itseez/opencv/zip/3.0.0

2.解压:

1 tar -xzvf opencv3.0.0

3.安装OpenCV需要的包:

  • GCC 4.4.x or later
  • CMake 2.6 or higher
  • Git
  • GTK+2.x or higher, including headers (libgtk2.0-dev)
  • pkg-config
  • Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
  • ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
  • [optional] libtbb2 libtbb-dev
  • [optional] libdc1394 2.x
  • [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
    1 sudo apt-get install build-essential
    2 sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
    3 sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

4.在解压出来的opcv目录里,建一个release目录,然后再用cmake对源码进行编译。(使用官网的方法最后OpenCV的安装目录就是release这个目录)

1 cd ~/opencv
2 mkdir release
3 cd release
4 cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. //这里后边有两个点不能省略,但是是什么意思我还没搞懂

5.然后安装

1 sudo make
2 sudo make install

至此,安装完成。

 

然后,解决安装完成之后,python引用OpenCV出现“No module named cv2”的问题。

这里我主要参考的是这篇博文:http://pinkyjie.com/2010/10/19/ubuntu-opencv-python/

这里先提示以下这个地方,make的过程中会出现这个文件“cv.so”,它是连接OpenCV和python的关键文件。

ubuntu14.04 python2.7 安装配置OpenCV3.0

出现“No module named cv2”,原因就是python找不到我们刚才提到的cv.so文件,我们进入路径/usr/local/lib/python2.7中发现有两个文件夹,一个是dist-package,一个是site-package,python默认只在前者里搜索,而我们生成的cv.so文件则在我们的安装目录"../../opencv3.0.0/release"中(还记得这个目录吧,就是我们刚才在安装过程中建的那个目录,如果你的安装目录中没有这个文件,则说明前面的make步骤出问题了,可能需要重新走一遍整个安装过程),我们只需要简单的将它移动到dist-package文件夹即可。

 

最后,我的测试程序:

1 import cv2
2
3 img = cv2.imread('lena.jpg')
4 cv2.imshow('image',img)
5 k = cv2.waitKey(0)
6 cv2.destroyAllWindows()