浅谈配置OpenCV3 + Python3的简易方法(macOS)
我的电脑本来是有手动CMake+make安装的OpenCV3的,以及系统自带的python2.x,但是现在想用python3+OpenCV3。
安装Python3
brew install python3
没有homebrew的话请自行安装
不要使用pip3
一开始我使用
pip3 install numpy pip3 install opencv-python
虽然成功了,但是不能使用imshow及video相关的东西,要你何用。
删除原OpenCV
在原先CMake的build文件夹下使用
make uninstall
安装OpenCV3
brew install opencv3 --with-contrib --with-python3 --without-python
–with-contrib是安装额外的contrib模块。
如果不加–without-python会报一个大意是不能同时用于python3和python2的错。
等待漫长的各种下载和编译
期间会编译gcc,花了一个半小时,也是醉了。
有些步骤挂VPN会加速,有些反而会更慢。
关于protobuf出错
在OpenCV3的CMake阶段会报一个protobuf下载失败的错。
使用:
brew install protobuf
再重新执行
链接
安装完后提示信息,大意是OpenCV3与OpenCV有很多文件冲突,所以就不把它放在/usr/local里了 blabla..
此时虽然python里可以用了,但是c++里不行了。
需要使用:
brew link opencv3 --overwrite --force
切换
如果以后需要同时使用OpenCV2和OpenCV3,可以用以下命令相互切换
brew unlink opencv3 brew link opencv --force --overwrite
以上这篇浅谈配置OpenCV3 + Python3的简易方法(macOS)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
您可能感兴趣的文章:
- Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
- OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
- Python 3.x 安装opencv+opencv_contrib的操作方法
相关推荐
-
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
最近自己准备学习Python,之前也看了点基础知识.做图形这块需要用到OpenCV所以就需要配置环境,之前准备用的是Python3,后来发现好多python貌似并不兼容Python3,所以就装了2.7.3. 我的机子是64位的win7,用的是python2.7.3,OpenCV用的是2.3.1,网上参照了好多发现根本不能用,以下自己亲测可以. 常用的科学计算包有numpy.scipy.,matplotlib.pandas等,需要一个一个装,这里有一个解决方法就是装EPD或者是Python(x,y
-
Python 3.x 安装opencv+opencv_contrib的操作方法
Note:这篇文章不会包含任何的技术解答,仅是安装教程.同样不保证对所有可能的安装中遇到的问题都能适用.不过如果不幸又幸运地遇到了跟我一样的问题,我希望你能从我这里找到解决方案. 前言 最近做作业需要Python+opencv,但发现opencv.org官网中提供的包只支持2.7版本.因为Python已在Anaconda下已经安装了3.5且写了一些代码,所以并不想卸载了3.5重新安装2.7,所以查了资料想要能让opencv能在3.5上跑. 正文 环境:Win7, 64bit python ver
-
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
第1步:官网下载Python3.3 这里面有windows和mac os x下的安装程序,下载那个64位的安装程序 第2步:安装下载的img文件,安装完后的目录如下: 复制代码 代码如下: /Library/Frameworks/Python.framework/Versions/3.3 第3步:移动python的安装目录 原来的安装目录见第2步,不过所有的python都在/System/Library/Frameworks/Python.framework/Versions目录中,所以最好使用
-
浅谈配置OpenCV3 + Python3的简易方法(macOS)
我的电脑本来是有手动CMake+make安装的OpenCV3的,以及系统自带的python2.x,但是现在想用python3+OpenCV3. 安装Python3 brew install python3 没有homebrew的话请自行安装 不要使用pip3 一开始我使用 pip3 install numpy pip3 install opencv-python 虽然成功了,但是不能使用imshow及video相关的东西,要你何用. 删除原OpenCV 在原先CMake的build文件夹下使用
-
浅谈Python2、Python3相对路径、绝对路径导入方法
os.path.dirname() 获取父目录 os.path.basename() #获取文件名或者文件夹名 python2缺省为相对路径导入,python3缺省为绝对路径导入 python2绝对路径导入 from __future__ import absolute_import python2缺省会搜索上一级目录.上上级目录 解决方案: import platform pver=platform.python_version() pversion= int(pver.split('.')[
-
浅谈PHP错误类型及屏蔽方法
程序只要在运行,就免不了会出现错误,错误很常见,比如Error,Notice,Warning等等.在PHP中,主要有以下3种错误类型. 1.注意(Notices) 这些都是比较小而且不严重的错误,比如去访问一个未被定义的变量.通常,这类的错误是不提示给用户的,但有时这些错误会影响到运行的结果. 2.警告(Warnings) 这就是稍微严重一些的错误了,比如想要包含include()一个本身不存在的文件.这样的错误信息会提示给用户,但不会导致程序终止运行. 3.致命错误(Fatal errors)
-
浅谈Mybatis Plus的BaseMapper的方法是如何注入的
目录 Mybatis Plus的BaseMapper的方法 Mybatis Plus的初始化方法 MybatisPlusAutoConfiguration中的SqlSessionFactory BaseMapper方法的注入的过程 总结 Mybatis Plus的BaseMapper的方法 我们在用的时候经常就是生产自定义的Mapper继承自BaseMapper,然后我们就可以使用了,但是有没想过BaseMapper里的方法是怎么被注入到mybatis里的,也没看到什么xml啊,今天我们就来看看
-
浅谈AngularJS中ng-class的使用方法
有三种方法: 1.通过$scope绑定(不推荐) 2.通过对象数组绑定 3.通过key/value键值对绑定 实现方法: 1.通过$scope绑定(不推荐): function ctrl($scope) { $scope.className = "selected"; } <div class="{{className}}"></div> 2.通过对象数组绑定: function ctrl($scope) { $scope.isSelecte
-
浅谈DetachedCriteria和Criteria的使用方法(必看)
在常规的Web编程中,有大量的动态条件查询,即用户在网页上面自由选择某些条件,程序根据用户的选择条件,动态生成SQL语句,进行查询. 比如,我记得在Facebook中可以选择高级查询条件,这个就是个动态的查询了塞,我们无法预知使用多少个查询,直接书写死了在我们的Dao层显然是不服和我们的意思的塞 针对这种需求,对于分层应用程序来说,Web层需要传递一个查询的条件列表给业务层对象,业务层对象获得这个条件列表之后,然后依次取出条件,构造查询语句.这里的一个难点是条件列表用什么来构造?传统上使用Map
-
浅谈Python类里的__init__方法函数,Python类的构造函数
如果某类里没有__init__方法函数,通过类名字创建的实例对象为空,切没有初始化:如果有此方法函数,通常作为类的第一个方法函数,有点像C++等语言里的构造函数. class Ca: def __init__(self, v): # 注意前后各两个下划线 self.name = v def pr(self): print "a--->", self.name ia = Ca("Jeapedu") # 本质调用的是__init__方法函数 ia.pr() Ca.
-
浅谈js中子页面父页面方法 变量相互调用
(1)子页面调用父页面的方法或者变量: window.parent.方法()或者变量名 window.parent相当于定位到父页面 之后的操作和在父页面中写代码一样写 window.parent.aa();//调取aa函数 window.parent.bb;//调取bb变量 例如:想在子页面中得到id为aaa的文本框的值 window.parent.$("#aaa").val();//这种写法的前提是引用了jquery window.parent.getElementById(&q
-
浅谈JavaScript的push(),pop(),concat()方法
push 方法 将新元素添加到一个数组中,并返回数组的新长度值. arrayObj.push([item1 [item2 [. . . [itemN ]]]]) 参数 arrayObj 必选项.一个 Array 对象. item, item2,. . . itemN 可选项.该 Array 的新元素. 说明 push 方法将以新元素出现的顺序添加这些元素.如果参数之一为数组,那么该数组将作为单个元素添加到数组中.如果要合并两个或多个数组中的元素,需要使用 concat 方法. 版本要求在:5.5
-
浅谈js函数的多种定义方法与区别
定义一个函数一般有如下三种方式: 1.函数关键字(function)语句: function fnMethodName(x){ alert(x); } 2.函数字面量(Function Literals): var fnMethodName = function(x){alert(x);} 3.Function()构造函数: var fnMethodName = new Function('x', 'alert(x);') 上面三种方法定义了同一个方法函数fnMethodName,第1种就是最常
随机推荐
- 在Vue.js中使用Mixins的方法
- FCKeditor 2.6.6在ASP中的安装及配置方法分享
- c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql)
- java 中自定义OutputFormat的实例详解
- Spring Boot Mysql 数据库操作示例
- python求斐波那契数列示例分享
- aspupload文件重命名及上传进度条的解决方法附代码第1/2页
- Express URL跳转(重定向)的实现方法
- 原生js和jquery中有关透明度设置的相关问题
- JavaScript实现的多个图片广告交替显示效果代码
- .htaccess文件写法之作用范围
- 哈佛成功金句-25则
- 在Linux下用 mkdir 命令来创建目录和子目录的用法
- 一个函数解决SQLServer中bigint 转 int带符号时报错问题
- jQuery使用before()和after()在元素前后添加内容的方法
- 改注册表保证顺利关机—排除奇怪故障一例
- quartz定时执行任务,并配置web.xml的操作方法
- C#生成随机数的方法小结
- Tomcat在Linux服务器上的BIO、NIO、APR模式设置方法
- vue中动态设置meta标签和title标签的方法