浅谈配置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的操作方法
(0)

相关推荐

  • 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种就是最常

随机推荐