@H_301_2@本人下载编译安装了opencv2.4.9,oppencv2.4.10,opencv2.4.11,opencv3.0.0,opencv3.1.0,opencv3.2.0版本,总结anaconda下opencv安装经验如下。
@H_301_2@
1.编译好的opencv和自己编译安装opencv的区别
@H_301_2@Ubuntu安装了anaconda以后,
@H_301_2@$condainstall opencv
@H_301_2@直接安装网上编译好的opencv,但是Ubuntu,python以及opencv不同版本之间使用都有差异,容易出问题;但是如果没出问题的话,这确实是最简单的安装方式.
@H_301_2@$pipinstall opencv-python
@H_301_2@或者$apt-get installpython-opencv
@H_301_2@或者$conda install –c https://conda.binstar.org/menpoopencv
@H_301_2@具有同样问题,所以有的人选择自己编译安装opencv.
@H_301_2@
@H_301_2@比如直接
@H_301_2@$conda installopencv
@H_301_2@之后,调用cv2.destroyAllWindows()时有时会出现:
@H_301_2@Thefunction is not implemented. Rebuild the library with Windows,GTK+ 2.x orCarbon support. If you are on Ubuntu or Debian,install libgtk2.0‑dev and pkg‑config,then re‑runcmake or configure script
@H_301_2@这就是网上编译好的opencv包在编译的过程中设置的选项可能和你当前需求不一样,解决方法就是自己编译安装opencv
@H_301_2@
2. Ubuntu下anaconda卸载opencv
@H_301_2@安装前首先把之前的opencv卸载掉,conda install装的就用condauninstall卸,其他的安装方式也按照对应方式卸载就可以了.
@H_301_2@然后
@H_301_2@$cd /usr/local/lib
@H_301_2@$sudo rm–r opencv相关的包
@H_301_2@$cd/usr/local/include
@H_301_2@$sudo rm–r opencv相关的包
@H_301_2@看看/usr/local/下有没有其他opencv,有的话一并删除
@H_301_2@删除一系列包可以用rm –r opencv*,以opencv开头的包就都会被删掉
@H_301_2@
3.安装opencv依赖包
@H_301_2@在安装opencv之前需要先处理好依赖包,有的教程会告诉你下面两条:
@H_301_2@$sudoapt-get update
@H_301_2@$sudoapt-get upgrade
@H_301_2@这两条不是必要的,有的包升级完了又是bug,比如numpy包升到1.12就会出现floatX64的问题,所以不用这两条也没问题
@H_301_2@
@H_301_2@下面这些依赖包还是要装的:
@H_301_2@$sudoapt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-devlibopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen3-devyasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-devlibvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-devsphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-devlibavformat-dev libswscale-dev default-jdk ant libvtk5-qt4-dev
@H_301_2@
4.编译安装opencv
@H_301_2@本人下载编译安装了opencv2.4.9,2.4.10,2.4.11,3.0.0,3.1.0,3.2.0,不同版本出的问题不一样,主要问题是cmake的差异,以及依赖包版本的差异
@H_301_2@官网下载opencv源码
@H_301_2@解压opencv源码
@H_301_2@$mkdirbuild
@H_301_2@$cdbuild
@H_301_2@//万一编译失败,删掉build和/usr/local/下相应的opencv文件就行,不用把整个解压的opencv都删掉
@H_301_2@
@H_301_2@//好看,才一行一行写的,没必要换行的
@H_301_2@$cmake-D
@H_301_2@CMAKE_BUILD_TYPE=Relese-D
@H_301_2@CMAKE_INSTALL_PREFIX=/usr/local-D
@H_301_2@WITH_TBB=ON-D BUILD_NEW_PYTHON_SUPPORT=ON -D
@H_301_2@WITH_V4L=ON-D INSTALL_C_EXAMPLES=ON -D
@H_301_2@INSTALL_PYTHON_EXAMPLES=ON-D
@H_301_2@BUILD_EXAMPLES=ON-D
@H_301_2@WITH_OPENGL=ON-D
@H_301_2@WITH_VTK=ON..
@H_301_2@//opencv3.x版本这么写是没有问题的,2.x版本需要指定CUDA,而3.x版本指定CUDA的话编译会出问题.
@H_301_2@//有的cmake里还有WITH_QT=ON,QT4和QT5版本问题在这里也经常出现,这条别写了
@H_301_2@//看看你的ffmpeg是否是YES,有的ffmpeg包在2.x版本是NO的状态,make不下去的,先去装好ffmpeg
@H_301_2@
@H_301_2@$make
@H_301_2@//有的写成make j2,make j4,make j8等,就是为了加速
@H_301_2@//make过程中,如果是3.x的版本,downloadthe file ippicv_linux_xxxxxxx.tgz会非常非常慢,还会出现校验码对不上的问题,自己下载ippicv_linux_xxxxxxx.tgz文件,拷到对应文件夹下,它正在下载那个删掉就可以了.
@H_301_2@
@H_301_2@$sudomake install
@H_301_2@将自己生成的动态链接库添加到系统能找到的路径:
@H_301_2@$sudogedit /etc/ld.so.conf.d/opencv.conf
@H_301_2@在打开的写字板中填写/usr/local/lib
@H_301_2@保存,并$sudo ldconfig
@H_301_2@这个写法和下面的写法是等效的
@H_301_2@$sudo -s
@H_301_2@$echo"usr/local/lib" > /etc/ld.so.conf.d/opencv.conf
@H_301_2@$sudoldconfig
@H_301_2@
@H_301_2@设置路径:
@H_301_2@$sudogedit /etc/bash.bashrc
@H_301_2@PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
@H_301_2@exportPKG_CONFIG_PATH
@H_301_2@
5.测试
@H_301_2@$python
@H_301_2@$import cv2
@H_301_2@如果出现no module named cv2,那就把cv2.so拷到anaconda/lib/python2.7/site-packages下
@H_301_2@$filename= "1.jpg"
@H_301_2@$img =cv2.imread(filename)
@H_301_2@$cv2.imshow("img",img)
@H_301_2@$cv2.destroyAllWindows()
@H_301_2@没问题就装好了
@H_301_2@
6.如果实在还没有解决
@H_301_2@如果还有问题,那就不一定是opencv的问题了,重装anaconda试试吧.
@H_301_2@
@H_301_2@
@H_301_2@
@H_301_2@参考:
@H_301_2@http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/