找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 5343|回复: 5

[讨论] 多平台下的OpenCV安装及使用

5

主题

101

帖子

101

积分

版主

Rank: 7Rank: 7Rank: 7

积分
101

最佳新人活跃会员热心会员突出贡献

QQ
落叶秋风 发表于 2017-3-21 23:34:55 | 显示全部楼层 |阅读模式
其实在去年我就因为需求需要使用Python搭配OpenCV做一些图片的处理,具体处理就是对图片中的特定颜色块进行识别,还有对图片进行特证时别。代码网上都能找到示例,这入门并非难事,但是OpenCV的配置难度真是超乎我想象,如果稍稍不注意就浪费大把时间,而你却还不知道错在哪里。

而且OpenCV配置最难得地方是下载编译扩展的contrib包。这里我解释下,就是完整的OpenCV在3.0的版本后分为两部分,一部分是主体,你所用的最多的便是这部分,另外一部分就是contrib库,这里存放着稳定性还未通过测试的一些函数,特征识别的一些函数例如SURF,SIFT都在这里面。如果你看到教程中出现了cv2.xfeatures2D.SURF_Create()的一些函数,那么恭喜你,如果你想用就得编译扩展包,要么用2.几的版本,但是2.几的版本虽然完整,但是也没有3.几版本的一些独有的很方便的函数,所以这就是我必须咬着牙进这个坑的缘故啊。这个大坑真的是小坑遍地,大坑常见,配置简直要命(也是因为我没有经验……被坑的不轻)。所以我打算写一些配置手册方便后来人,少走一些弯路,多一些时间去研究代码。

今天先写序言,明日开始mac下的安装配置教程。(因为我今天配置了三遍,实在被耍的不行。还要去上课,还要被人催着写代码,让我歇息会……),因为我是第一次在ubuntu环境下配置成功的,这里有些同学会说网上不是有教程吗,照着来就好了啊。网上的一些教程的确很准确(特别是一个外文网站,写的非常好),但是他的教程写的时间是2015年左右,距离现在已经过去了2年,很多地方需要微改,而新装的人是不知道的,参数一不对,立马翻车,翻得莫名其妙的,装的时间很长,装完才发现原来是白装了,还需要去删除或者是重新配置,神烦,电脑环境被搞得七零八落的。。。。。(这才是最头痛的,重装还是不重装进退两难。)
回复

使用道具 举报

5

主题

101

帖子

101

积分

版主

Rank: 7Rank: 7Rank: 7

积分
101

最佳新人活跃会员热心会员突出贡献

QQ
落叶秋风  楼主| 发表于 2017-3-23 16:42:20 | 显示全部楼层
本帖最后由 落叶秋风 于 2017-3-23 16:47 编辑

首先非常抱歉,昨天是真的太忙了,说好的昨天发自己的安装步骤及注意事项,但是昨天从机房回到寝室已经11点了,委屈。

回归正题,现在开始我的安装步骤解答

首先在mac下提前安装homebrew这个模块,这个模块装东西用的,就像ubuntu下的apt-get一样。这个我就不贴怎么安装了,网上有详细的教程,我也是按照别人的方法安装成功的。

其次保证mac上安装了Xcode,这个是一个很不错的ide,好吧,我们安装他的目的是为了下面安装别的东西提供编译支持,因为在windows上编译的话需要visual studio,而在mac上安装则需要Xcode。所以我猜测是提供编译支持的,错了的话请大家不吝赐教而且别打我……

好了,进入正式的安装步骤,首先先在终端下敲如下命令:
  1. brew install python
复制代码


完成后在终端下进入~/.bash_profile文件添加如下代码:
  1. export PATH=/usr/local/bin:$PATH
复制代码


然后回到终端命令行模式下:
  1. source ~/.bash_profile
复制代码


验证上述改动是否成功:
  1. which python
复制代码

如果显示为/usr/local/bin/python就可以接着进行下一步了,如果不是,设置可能某步不正确,请再次尝试。

下面安装python的虚拟环境的包,终端命令行模式下
  1. pip install virtualenv virtualenvwrapper
复制代码


然后还是终端下进入~/.bash_profile文件添加如下两句代码:
  1. # Virtualenv/VirtualenvWrapper
  2. source /usr/local/bin/virtualenvwrapper.sh
复制代码


返回终端命令行模式下
  1. source ~/.bash_profile
复制代码


接着敲如下代码:
  1. mkvirtualenv cv
复制代码

注释:cv名字是我自己取得,只要你自己记得住,叫什么名字都可以

现在安装编译OpenCV需要安装的Numpy库
  1. pip install numpy
复制代码


接着安装其他的一些编译需要的依赖库:
  1. brew install cmake pkg-config
复制代码
  1. brew install jpeg libpng libtiff openexr
复制代码
  1. brew install eigen tbb
复制代码

注:这期间你会看到终端代码乱飞,耐心等待,保证安装成功。

你需要下载OpenCV-3.0.0的源码,你有两种渠道,一个是上官网下载源码下来,也可以上github去下载。这我就不提供下载链接了

然后比较关键的一步,你下载扩展包需要对应OpenCV的版本,我曾经下了github上最新的扩展包源码尝试编译,那扩展包的源码估计已经不是对应的3.0.0的版本了,反正我是出现编译错误了,然后我去网上下载了对应于3.0.0版本的扩展包,磕磕绊绊安装成功了,真是辛苦。需要的同学可以私信我获取,我最近也打算把他上传至网盘方便大家下载,后续会贴上下载链接。

保证源码和扩展包都下载下来,放在同一个文件夹下,放哪你自己记得住就行,我是放在了/User/fangyong/下,fangyong是我的用户文件夹。

这时候我们cd到opencv(OpenCV主体文件夹,就是我们先前下载的两个文件的其中一个,不是那个扩展包哦,切记),创建一个文件夹,名字随意,我的是build,我的命令如下,你们根据自己的实际情况自行更改:
  1. cd ~/opencv
  2. mkdir build
  3. cd build
复制代码


重头戏来了,需要输入一大段代码了,其中只要稍有偏差就是错误,谨慎核实自己的python路径信息:
  1. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \
  2. -D PYTHON2_PACKAGES_PATH=~/.virtualenvs/cv/lib/python2.7/site-packages \
  3. -D PYTHON2_LIBRARY=/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/bin \
  4. -D PYTHON2_INCLUDE_DIR=/System/Library/Frameworks/Python.framework/Headers \
  5. -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON \
  6. -D BUILD_EXAMPLES=ON \
  7. -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..
复制代码

(信息解释我晚点再加上,也可以上我下面贴上的我看的外文网站上的解释理解下,反正这里不能照抄,需要自己根据自己的实际路径填写)

然后会出来一大段信息,如下图(看文章最底下):



一定要保证python 2那边的信息路径可以不跟你的实际路径一样,但信息丰满成都一定要跟图中的一样,该有的项一项不少。而且在OpenCV to be build信息中要有xfeatures2D和python2这两个单词,代表着你安装上的OpenCV是带扩展模块的,并且是提供python支持的。

确认无误后,敲
  1. make -j4
复制代码


这编译期间很慢,耐心等待,如果你运气不好,会遇到一个下载ippicv_macosx_20141027.tgz的选项卡着不动,然后提示下载失败,解决方法是去网上下载一个这个名字的包把它拷贝至opencv(你下载的那两个东西之一,可能名字叫做opencv-3.0.0,反正你知道它就是我口中的opencv文件夹就行)文件夹下的3rdparty->ippicv->downloads->macosx-9662fe0694a67e59491a0dcc82fa26e0下就可以了,重新make -j4一下就好

到达100的编译进度后,敲:
  1. sudo make install
复制代码


安装完之后别高兴,还需要设置软链接呢,否则你进入python界面敲import cv2肯定报错
在终端下敲:
  1. cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
  2. ls -l cv2.so
复制代码

出现类似-rwxr-xr-x  1 adrian  staff  2013052 Jun  5 15:20 cv2.so的输出就成

这是你确认下你的终端下前端是否有(cv)的前缀,没有的话,敲
  1. workon cv
复制代码

启动我们前面设置的python虚拟环境的意思

然后在终端下敲python,出现python的命令行界面,敲import cv2,如果没报错,就说明是安装成功了。至此大功告成。如果你想在pycharm下使用这个安装了opencv的python虚拟环境,且看我连载更新……太忙了,有时间会写的,不要吐槽我,我是瞎忙不赚钱的那种……
对了,我参考的是一篇外文网站安装的,安装代码及截图大部分截取自那个网站,网站网址:http://www.pyimagesearch.com/201 ... -python-2-7-on-osx/    向原创致敬


py2_opencv3_osx_compile_modules.jpg
py2_opencv3_osx_compile_py_options.jpg
回复 支持 反对

使用道具 举报

5

主题

101

帖子

101

积分

版主

Rank: 7Rank: 7Rank: 7

积分
101

最佳新人活跃会员热心会员突出贡献

QQ
落叶秋风  楼主| 发表于 2017-3-31 18:38:51 | 显示全部楼层
ubuntu14.04下安装opencv3.0+contri包
首先打开ubuntu终端先进行一些升级
  1. sudo apt-get update
  2. sudo apt-get upgrade
复制代码


接着敲
  1. sudo apt-get install build-essential cmake git pkg-config
复制代码

然后静静等他安装完,期间可能会让你输入yes或者no,敲个y就好

然后打
  1. sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev
复制代码

接着等呗,网速快就下的快

又是一段安装包的命令
  1. sudo apt-get install libgtk2.0-dev
复制代码


接着是
  1. sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
复制代码

  1. sudo apt-get install libatlas-base-dev gfortran
复制代码


接下来是安装pip,可能ubuntu自带了,但是升级下也是蛮好的
  1. wget https://bootstrap.pypa.io/get-pip.py
  2. sudo python get-pip.py
复制代码


然后是安装python的虚拟环境
  1. sudo pip install virtualenv virtualenvwrapper
  2. sudo rm -rf ~/.cache/pip
复制代码


接下来需要在~/.bashrc文件中加入如下几句话
  1. # virtualenv and virtualenvwrapper
  2. export WORKON_HOME=$HOME/.virtualenvs
  3. source /usr/local/bin/virtualenvwrapper.sh
复制代码

可能你不知道怎么加,我告诉你一句终端命令行可以用文本编辑器打开文件,文本编辑器你该会用了吧,sudo gedit ~/.bashrc

然后重新加载下文件~/.bashrc
  1. source ~/.bashrc
复制代码


然后创建python虚拟环境,名字cv可以随便取,你记得住就行
  1. mkvirtualenv cv
复制代码

  1. sudo apt-get install python2.7-dev
复制代码


接着安装Numpy模块
  1. pip install numpy
复制代码

安装这个模块时会需要良久,期间会跳大量安装信息,不要慌,一般是不会出现错误的

前面都完成之后,下面是下载opencv3.0和contrib包的资源了,我会上传这些至百度云提供给大家下载,免得大家下载错版本

然后就是cd到opencv目录下创建一个文件夹,名字还是随意,然后cd到该目录下
  1. cmake -D CMAKE_BUILD_TYPE=RELEASE \
  2.         -D CMAKE_INSTALL_PREFIX=/usr/local \
  3.         -D INSTALL_C_EXAMPLES=ON \
  4.         -D INSTALL_PYTHON_EXAMPLES=ON \
  5.         -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
  6.         -D BUILD_EXAMPLES=ON ..
复制代码

扩展包路径根据自己实际情况来,我是放到了home文件夹下

然后刷刷刷的创建,最后检查下文字中的to be built中有没有python2和xfeatures2D这两个,没有的话就是前面的cmake指令有问题,需要排除

确认无误后敲
  1. make -j4
复制代码

在完成之后敲
  1. sudo make install
复制代码
  1. sudo ldconfig
复制代码


静待其完成之后
  1. cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
  2. ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
复制代码


好了,安装步骤到此为止,测试下是否安装成功
  1. workon cv
  2. python
  3. import cv2
复制代码

如果没报错,就是大功告成了。
回复 支持 反对

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2017-4-1 21:48:20 | 显示全部楼层
赞!
python3.4.4, win10
回复

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2017-4-3 11:48:31 | 显示全部楼层
python虚拟环境的创建还有个更好用的命令,pyvenv,
创建虚拟环境直接用pyvenv venv即可,在当前目录下会建立虚拟环境目录venv
python3.4.4, win10
回复 支持 反对

使用道具 举报

5

主题

101

帖子

101

积分

版主

Rank: 7Rank: 7Rank: 7

积分
101

最佳新人活跃会员热心会员突出贡献

QQ
落叶秋风  楼主| 发表于 2017-4-7 16:26:24 | 显示全部楼层
OpenCV3.0源码及扩展包和一些需要的组件我都打包好了,提供给大家便利。
下载链接:https://pan.baidu.com/s/1bTz9aY
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表