当我想要在python上测试FeatureDetector并使用OpenCV的SIFT时,由于我在pycharm上仅仅安装了opencv-python,所以会出现报错(忘记截图了,好像是:‘module’ object has no attribute ‘xfeatures2d’。大致意思是说找不到 xfeatures2d 的库)。


2018.9.30更新:

Windows环境下把opencv中python的py文件复制到python安装位置的package 里。

linux下载opencv-python!

——来源:python opencv 怎么安装xfeature2d.extra 2d features framework_百度知道

https://zhidao.baidu.com/question/2079216204608995428.html


——在OpenCV3.1.0中使用SIFT,SURF算法-布布扣-bubuko.com

http://www.bubuko.com/infodetail-1285356.html


别人出现的相同报错:

cv2.error: OpenCV(3.4.3) C:projectsopencv-pythonopencv_contribmodulesxfeatures2dsrcsift.cpp:1207: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function ‘cv::xfeatures2d::SIFT::create’


于是想要在pycharm上安装 opencv-contrib-python。但是在这个过程中出现了了另一个问题:老是安装不上opencv-contrib-python,总是会出现以下的错误:


pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=’files.pythonhosted.org’, port=443): Read timed out.


在cmd里运行pip install opencv-contrib-python也会出现以下提示:


C:UsersAdministrator>pip install opencv-contrib-python

Requirement already satisfied: opencv-contrib-python in c:usersadministratora

ppdataroamingpythonpython36site-packages (3.4.3.18)

Requirement already satisfied: numpy>=1.11.3 in e:anaconda3libsite-packages (

from opencv-contrib-python) (1.14.3)


然后网上的相关资料建议我先把opencv-python给卸载(uninstall,点击pycharm中file菜单栏的setting后的减号“—”),我照做了,但是试了很多次,发现后面安装不回来……

接着我按照图三opencv-contrib-python右边的链接(https://github.com/skvark/opencv-python)下载了它提供的github文件(opencv-contrib-python在它给的GitHub里,出现的文件名就是opencv-python),

不过好像并没有什么用,好像还是安装不了,出现报错:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=’files.pythonhosted.org’, port=443): Read timed out.


然后我到Python Extension Packages for Windows – Christoph Gohlke(https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv)里下载了opencv_python‑3.4.3‑cp36‑cp36m‑win_amd64.whl想要重新安装opencv_python‑3.4.3。不过按照教程用pip install opencv-python,返回的依旧是:

C:UsersAdministrator>pip install opencv-python

Requirement already satisfied: opencv-python in e:anaconda3libsite-packages (

3.4.3)


然后我想,既然在e:anaconda3libsite-packages里面已经存在了相关的package:opencv_contrib_python-3.4.3.18.dist-info和opencv_python-3.4.3.dist-info那python安装位置的E:PythonLibsite-packages有没有opencv_contrib_python-3.4.3.18.dist-info和opencv_python-3.4.3.dist-info呢?

一看,还真没有。于是我突发奇想,把e:anaconda3libsite-packages里的这两个库复制粘贴到了E:PythonLibsite-packages里面,接着再去尝试在pycharm里面install安装opencv-python和opencv-contrib-python。不过第一次试还不行,依旧报错说install unsuccessful。不过没关系,我再去试第二次(第二次什么都没有去改),然后终于安装成功了!

去试了试网上给的xfeatures2d测试代码和图片:

import cv2

import numpy as np

img1 = cv2.imread(“the_book_thief.jpg”, cv2.IMREAD_GRAYSCALE)

img2 = cv2.imread(“me_holding_book.jpg”, cv2.IMREAD_GRAYSCALE)

# ORB Detector

orb = cv2.ORB_create()

kp1, des1 = orb.detectAndCompute(img1, None)

kp2, des2 = orb.detectAndCompute(img2, None)

# Brute Force Matching

bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)

matches = bf.match(des1, des2)

matches = sorted(matches, key = lambda x:x.distance)

matching_result = cv2.drawMatches(img1, kp1, img2, kp2, matches[:50], None, flags=2)

cv2.imshow(“Img1”, img1)

cv2.imshow(“Img2”, img2)

cv2.imshow(“Matching result”, matching_result)

cv2.waitKey(0)

cv2.destroyAllWindows()

得到了以下结果:

特征匹配成功!


还有一种问题是刚开始下载pycharm时没法导入opencv,可以参考这一篇博客介绍的方法:

win10 +python3.6环境下安装opencv以及pycharm导入cv2有问题的解决办法 – 蛋片鸡 – 博客园

https://www.cnblogs.com/FHC1994/p/8990307.html

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

win10 +python3.6环境下安装opencv以及pycharm导入cv2有问题的解决办法

一、安装opencv

借鉴的这篇博客已经写得很清楚了——–https://blog.csdn.net/u011321546/article/details/79499598       ,这里我只是记录一下自己的安装过程

  按理说这里安装opencv应该有两种办法,一种方法是python的pip安装,另外一种方法是直接在Pycharm里安装,但是尝试后发现第二种方法发现有错,如下图。

  出错原因是“试着从系统终端运行这个命令”,所以我们只能用第一种方法pip安装。

  在安装opencv之前要先安装pip,安装pip方法如下:

  进入Python安装目录下的Scripts路径,执行  easy_install-3.6.exe  pip  (因为我的python版本是3.6的),执行了这条命令后,pip就安装成功了,pip的功能如下:

 安装完pip后,接着安装opencv(其他模块安装也类似如下这种方法):

进入Python安装目录下的Scripts路径,执行 pip install opencv-python 

  这里要查看安装的opencv的版本话需要在,需要在命令行终端(或python自带的IDLE中)运行如下代码即可查看:

  import cv2

cv2.__version__

  效果如下,可以知道我的opencv版本为3.4.0

二、pycharm导入cv2有问题的解决办法

  pip安装好opencv后,可是在pycharm里导入cv2还是会报错,这是为什么呢?我也百度了好一会儿才找到解决方法,这里参考博客:https://blog.csdn.net/Eclipsesy/article/details/77686807      这篇博客很好解决了我的问题,但是博客里的方法最后一处感觉有点多余,只需要第一步即可解决问题。

解决办法:

  要确定pycharm里的环境变量是否包含python的环境lib,查看方法如下图所示:

  点击Show All,在点击红色圈查看pycahrm的查找路径,最后看黄色圈的路径是否加进去。注意:只有黄色圈部分路径加进去了(site-packages这个文件夹必须包含进去),Pycahrm才能正确导入cv2。

分类: win10+Python3.6+opencv3.4.0

文章来源于互联网,如有雷同请联系站长删除:PyCharm安装opencv-python和opencv-contrib-python的一些问题和解决方法_2018-09-27

发表评论