美文网首页Open CVpython
PyCharm安装opencv-python和opencv-co

PyCharm安装opencv-python和opencv-co

作者: e18ea5ca8301 | 来源:发表于2018-09-27 21:51 被阅读3171次

    当我想要在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:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.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:\Users\Administrator>pip install opencv-contrib-python

    Requirement already satisfied: opencv-contrib-python in c:\users\administrator\a

    ppdata\roaming\python\python36\site-packages (3.4.3.18)

    Requirement already satisfied: numpy>=1.11.3 in e:\anaconda3\lib\site-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:\Users\Administrator>pip install opencv-python

    Requirement already satisfied: opencv-python in e:\anaconda3\lib\site-packages (

    3.4.3)


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

    一看,还真没有。于是我突发奇想,把e:\anaconda3\lib\site-packages里的这两个库复制粘贴到了E:\Python\Lib\site-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-co

        本文链接:https://www.haomeiwen.com/subject/fkeyoftx.html