我试图通过Anaconda为Python安装OpenCV,但我似乎无法解决这个问题。
我试着
conda install opencv
conda install cv2
我也试着搜索
conda search cv
没有雪茄。我无意中看到这个列出了opencv作为一个包含包:
http://docs.continuum.io/anaconda/pkgs.html
在运行conda info后,我注意到我的版本是3.4.1,但我似乎在网上找不到任何关于这个版本的信息。我对此很困惑。
我是不是遗漏了一些很明显的东西?如果opencv可用于Anaconda的以前版本,那么为什么它不能用于新版本呢?为什么这个链接只显示版本1.9.2的文档?
在Linux上,正如这里所讨论的,目前获得opencv的最佳方法是在conda-forge的loopbio:
conda install -c loopbio -c conda-forge -c pkgw-forge ffmpeg-feature ffmpeg gtk2 opencv
如果你有一个“现代CPU”,也会有一个编译版本“支持所有现代CPU指令集扩展[…]]和反对libjpeg-turbo":
conda install -c loopbio -c conda-forge -c pkgw-forge ffmpeg-feature ffmpeg gtk2 opencv-turbo`
其他答案中提到的两个解决方案并不无条件有效:
The conda you get through conda install opencv or pip install opencv-python doesn't have gtk2 support, so you can't display images through imshow.
Conda built by Menpo (conda install -c menpo opencv3) has gtk2 support, but
they have only built OpenCV 3.2 for Python 3.5, not Python 3.6
Ubuntu 16.10 has deprecated libpng12, leading to a missing dependency and the following error when trying to import cv2: ImportError: libpng12.so.0: cannot open shared object file: No such file or directory, as discussed here
编辑:@Yamaneko指出,截至2017年6月14日,“loopbio的OpenCV 3.2.0版本存在一个问题。无声地读写视频失败。这是由于上游OpenCV问题与旧GCC的结合。详情请点击这里。有一个公关正在解决这个问题。”
我只是想更新Atlas7的精彩答案。
如果你正在使用OpenCV 3,将测试代码更改为以下内容:
import cv2
cap=cv2.VideoCapture("input_video.mp4")
print cap.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
虽然不是通过Conda,这是Ubuntu特有的,安装OpenCV的所有贡献模块,如SIFT和SURF,最简单的方法是使用:
PIP安装opencv-contrib-python
它支持Python2.7+和Python 3.4+
如果你选择不内置contribs,你可以这样做:
PIP安装opencv-python
在运行这些命令之前,你需要安装以下依赖项:
Sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
这是一个关于在Ubuntu上设置OpenCV的好教程:
https://medium.com/@debugvn/installing-opencv-3-3-0-on-ubuntu-16-04-lts-7db376f93961