python3安装opencv3扩展库以及jupyter环境下出现的问题汇总

由于需要使用SURF算法,而opencv是个不错的选择。但是opencv3版本的将一些不稳定的算法例如SURF算法放到了扩展库中,普通下载的opencv3库没有将这些算法包含在内。则需要下载对应opencv_contrib.

一:下载对应版本的opencv的轮子(wheel)

python一般安装库的方法采用pip  install +库名。但是由于opencv好像是不支持python3的,不能直接pip 安装。但是有opencv的wheel可以提供pip安装。相应的版本wheel在这里下载

点击打开链接,这里我选择的是下面。因为我的python版本是3.6的。前面的数字表示opencv版本,后面的数字表示python版本。其中contrib表示包括扩展库部分。

python3安装opencv3扩展库以及jupyter环境下出现的问题汇总_第1张图片


二:安装库

快捷键win+r进入命令行。然后pip install +刚才下载的wheel的绝对路径+wheel的名字。

例子:我的是这样:pip install D:\Profession\opencv_python-3.4.1+contrib-cp36-cp36m-win_amd64.whl    我下载的wheel文件是放在d盘中的。

由于我是使用anaconda中的jupyter环境,所以我是在anaconda prompt中进行的。两者不影响,均可以。

三:提示安装成功即可使用。

安装完后,可以查看自己是否安装了,由于我是在anaconda环境中安装中,直接输入pip list 可以查看安装的所有包。但是虽然我安装成功了,但是在jupyter中import cv2出现错误。如下:

python3安装opencv3扩展库以及jupyter环境下出现的问题汇总_第2张图片

错误原因是numpy旧版本导致的。由于下载的opencv3.4的,通过查看numpy的版本发现是1.12.1  也可以通过查看这里的点击打开链接,查看对于的numpy版本

python3安装opencv3扩展库以及jupyter环境下出现的问题汇总_第3张图片

此时观察,可知应该更新到了1.14.2版本的。可以通过 pip install numpy --upgrade --ignore-installed 对numpy进行更新。

更新完发现问题解决了。


但是问题又出现了,发现安装异常:Exception:
Traceback (most recent call last):
  File "c:\users\yonglianglan\appdata\local\continuum\anaconda3\lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "c:\users\yonglianglan\appdata\local\continuum\anaconda3\lib\site-packages\pip\commands\install.py", line 342, in run
    prefix=options.prefix_path,
  File "c:\users\yonglianglan\appdata\local\continuum\anaconda3\lib\site-packages\pip\req\req_set.py", line 784, in install
    **kwargs
  File "c:\users\yonglianglan\appdata\local\continuum\anaconda3\lib\site-packages\pip\req\req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "c:\users\yonglianglan\appdata\local\continuum\anaconda3\lib\site-packages\pip\req\req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "c:\users\yonglianglan\appdata\local\continuum\anaconda3\lib\site-packages\pip\wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
  File "c:\users\yonglianglan\appdata\local\continuum\anaconda3\lib\site-packages\pip\wheel.py", line 323, in clobber
    shutil.copyfile(srcfile, destfile)
  File "c:\users\yonglianglan\appdata\local\continuum\anaconda3\lib\shutil.py", line 121, in copyfile
    with open(dst, 'wb') as fdst:
PermissionError: [Errno 13] Permission denied: 'c:\\users\\\\appdata\\local\\continuum\\anaconda3\\Lib\\site-packages\\numpy\\core\\multiarray.cp36-win_amd64.pyd'

原因是安装numpy时有关于Python的进程没有关闭。将所有的Python进程关闭后即可


但是又出现了另外一个问题。在代码测试中又出现了有个问题。照片无法输出

import cv2
im=cv2.imread(r'C:\Users\Desktop\常用\图片\26.jpg')
cv2.imshow('iage',im)
cv2.waitKey(0)
cv2.destroyAllWindows()

python3安装opencv3扩展库以及jupyter环境下出现的问题汇总_第4张图片

这个问题的原因是照片的觉对路径中中文,将决定路径中全部改为英文就可以解决问题了。

代码更改如下:

import cv2
im=cv2.imread(r'F:\picture_test\13.jpg')
cv2.imshow('image',im)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出照片:

python3安装opencv3扩展库以及jupyter环境下出现的问题汇总_第5张图片



你可能感兴趣的:(OpenCV,python)