[Deep learning 环境配置之一]win10 + python 3.6 + Anaconda+ 安装 opencv3.4.3:解决import cv2 问题_Chaser_LittleBee的博客-程序员宅基地

技术标签: debug the installation  AI环境配置  

[Deep learning 环境配置之一]win10 + python 3.6 + Anaconda+ 安装 opencv3.4.3:解决import cv2 问题

OpenCV是一个图像处理的经典库,而且关键是一直在升级。为了在Python中调用opencv,特别是看到好多代码都是import cv2,而这个在python中是无法直接进行pip install安装的,也没办法用 conda list 安装。
查了下,才知道需要从opencv库中进行拷贝,先把文件下载到本地,再用命令行安装。

环境:

win10,64位,python 3.6,Anaconda3(64-bit),想装opencv3.4.3(最新版本)

安装流程:

(1) 在网址(https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv)下载适合电脑配置版本的轮子:

然后把它复制粘贴到这个文件夹:“C:\Users\Kevin\Anaconda3\Lib\site-packages”

这里写图片描述

这里写图片描述

(2) 在这个文件夹的空白处右键,打开 Git Bash命令行输入 “pip install opencv_python-3.4.3-cp36-cp36m-win_amd64.whl“,然后就看到安装成功的提示。

这里写图片描述

(3) 打开cmd, 进入 IPython,输入 “import cv2”,说明调用成功。再输入”help(cv2)”查看帮助信息。
这里写图片描述

注意:以上只是在Anaconda的默认环境(root环境)安装了 opencv,如果想在TensorFlow或Keras中调用,还需要在TensorFlow的环境中安装一遍。步骤如下:

(4) 在Anaconda Prompt中,在tensorflow环境用 pip 安装 opencv,输入
”pip install C:\Users\Kevin\Anaconda3\Lib\site-packages\opencv_python-3.4.3-cp36-cp36m-win_amd64.whl”

这里写图片描述

经试验,这里只能用 pip 进行安装,用 conda install 会报错,如下图所示:

这里写图片描述

(5) Import cv2 成功,但是在Jupyter中出现一个新的错误:

出现以下错误:

RuntimeError Traceback (most recent call last)
RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb


ImportError Traceback (most recent call last)
in ()
10 from keras import backend as K
11 K.set_image_data_format(‘channels_first’) # 用这个书写习惯
—> 12 import cv2
13 import os
14 import numpy as np

ImportError: numpy.core.multiarray failed to import

这里写图片描述

原因:
这里有2个版本的 numpy。在第4步中,我们是用 pip install的opencv,pip自带的 numpy版本是 0xc(12),而jupyter运行的是anaconda的 numpy版本,版本号是0xb(11),后者比较旧,导致import 报错。

这里写图片描述

这里写图片描述

因此,需要升级 conda 的numpy。
在 Anaconda prompt 输入“conda install numpy”

这里写图片描述

安装,然后就发现 conda list中的numpy 版本更新了,如下所示,说明安装成功。

这里写图片描述

这里写图片描述

第一篇程序员宅基地,希望能给刚踏上AI之路的小伙伴一点帮助。就像黄博所说,在这条路上,“你不是一个人在战斗!”

[1]: 参考教程

[2]: 编译好的opencv-python下载网址

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_21591675/article/details/82595812

智能推荐

[Kruskal] POJ 1751_pppqq77223434的博客-程序员宅基地

题意: 有一个N个城市M条路的无向图,给你N个城市的坐标,然后现在该无向图已经有M条边了,问你还需要添加总长为多少的边能使得该无向图连通.输出需要添加边的两端点编号即可.思路 不需要输出最终生成树的权值,那么我们在求两点距离的时候时间保存距离 dist=(x1-x2)(x1-x2)+(y1-y2)(y1-y2);即可,不用sqrt开方(因为开方费时间). 不知道一开始

新电脑(or重装完)需要什么安装软件,看这篇就够了!!!_black_dsy的博客-程序员宅基地

买到一台新笔记本电脑之后要做些什么?下面简单例举几点,需要的童鞋自提文章目录一,日常工具1,视频类2,音乐类3,图片类4,浏览器5,网络下载相关6,输入法7,聊天类8,办公类9,笔记类10,电脑文件搜索二,系统优化1,安全类2,压缩文件3,驱动类4,清理类三,编程相关1,编程类四,网络资源一,日常工具1,视频类win10自带的视频就挺好使,我也一直在用Potplay(视频播放器)b...

世界主要港口中英文对照表_水煮鱼的博客的博客-程序员宅基地

港口名称    国际电话代码      国家与地区          港埠代码        中文名称       Aarhus         45              丹麦               DKAAR           阿路斯       Abidjan        225             科特迪瓦            CIABJ

连载 大学生求职七大昏招(十九)缺少职业素养 4_kshdflh的博客-程序员宅基地

连载 大学生求职七大昏招(十九)缺少职业素养 4

热加载Properties 工具类_williamxww1的博客-程序员宅基地

项目中经常会出现更改某个配置项后,很无奈的要重启服务使其生效,因此写下此工具类。主体思想是建立一个守护线程每隔一段时间重新加载一下配置项

shell进阶指南_如何在5年薪百万的博客-程序员宅基地_shell进阶

一、变量替换语法含义${变量#pattern}从开头匹配,删除0第一个匹配到字符删除。双#表示删除0匹配到的最后一个字符呢删除${变量%patther}从尾部开始匹配,从尾部开始删除,其他同上${变量/oldstr/newstr}匹配第一个替换,双//表示全部替换var1=${variable_1#*ov}var2=${variable_1##*ov}echo "# *ov匹配结果:" $var1echo “## *ov匹配结果:” $var2v

随便推点

CentOS 7 安装Slurm_随祥的博客-程序员宅基地_centos7 slurm安装

1. 前期准备1.1 关闭SELinux# vi /etc/sysconfig/selinux SELINUX=disabled# reboot# getenforce(查看SELinux状态)1.2 关闭 Firewall# systemctl stop firewalld.service# systemctl disable firewalld.se...

Html富文本解析_已经毕业的C先生的博客-程序员宅基地_html富文本解析

textView.setText(Html.fromHtml(imageString, new OrImageGetter(getContext(), textView, 108, 45), null));重写OrImageGetterpublic class OrImageGetter implements Html.ImageGetter { private DkDrawabl...

分类任务中数据类别不平衡问题的几种解决方案_kuaizi_sophia的博客-程序员宅基地_阈值移动

类别不平衡(class-imbalance),是指分类任务中不同类别的训练样例数目差别很大的情况(例如,训练集正类样例10个,反类样例90个),本文假设正类样例较少,反类样例较多。现有解决方案大体分为三类,如下文所示。欠采样(undersampling)欠采样方法,即去除一些反类样例,使得正、反类样例数量接近。EasyEnsemble为欠采样的代表性算法,利用继承学习机制,将反例划分为若干...

【shaderforge学习笔记】 Geometry Data(物理信息)_v_xchen_v的博客-程序员宅基地

shaderforge物理信息Bitangent Dir切线坐标系转换到世界坐标系参考DepthFace Sign参考FresnelNormal DirectionObject PositionObject ScaleScreen PositionTangent DirectionUV CoordinateVertex ColorView Direction

(51)Java基础 --IO流 --字符流_learner.w的博客-程序员宅基地

目录一、字符的概述二、Reader1、常用方法三、Writer1、常见的方法四、使用字符流完成文件拷贝。一、字符的概述使用字节流完成文件拷贝,看起来是一个普通程序,但是它使用的是一种低级的IO。如果针对的内容由字符组成,最好使用字符流,字节流只适用于最为原始的IO。java平台使用Unicode来存储字符。字符流自动在本地字符集和Unicode这种国际通用格式之间转换。例如在西方国家,本地字符集通常是ASCII,在应对国际化的时候,程序员不用做额外的处理。

JUnit报错nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to..._kuluzs的博客-程序员宅基地

1) 环境: java Spring MVC       使用JUnit执行单元测试的脚本2)执行报错org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [工程java包的目录-persistent\targe

推荐文章

热门文章

相关标签