Python计算机视觉:安装

Wesley13
• 阅读 684
  1. 0.1 需要准备的安装包
  2. 0.2 安装Python(x,y)
  3. 0.3 安装PCV库
  4. 0.4 VLfeat

为顺利帮助读者完成本书中实例的学习,译者已对代码做了相应整理,下面给出在对本书实例学习前,你需要做的前期安装工作。注意,下面译者给出的安装过程是针对Windows下的,其他平台如Linux、Mac请查阅中译本附录。

0.1 需要准备的安装包

要完整复现书中的实例,你需要的主要四个文件包括Python(x,y) 2.7.x安装包、PCV库、VLfeat和本书用到的数据库。Python(x,y)可以在python-xy,PCV库、本书整理出来的实例代码以及本书用到的所有图像数据可以从首页给出的链接下载。

0.2 安装Python(x,y)

在Windows下,译者推荐你安装Python(x,y) 2.7.x。Python(x,y) 2.7.x是一个库安装包,除了包含Python自身外,还包含了很多第三方库,下面是安装Python(x,y)时的界面:

Python计算机视觉:安装

从上面第二幅图可以看出,pythonxy不仅包含了SciPy、NumPy、PyLab、OpenCV、MatplotLib,还包含了机器学习库scikits-learn。 为避免出现运行实例时出现的依赖问题,译者建议将上面的库全部选上,也就是选择“full”(译者也是用的全部安装的方式进行后面的实验的)。安装完成后,为验证安装是否正确,可以在Python shell里确认一下OpenCV是否已安装来进行验证,在Python Shell里输入下面命令:

from cv2 import __version__
__version__

输入上面命令,如果可以看到OpenCV的版本信息,则说明python(x,y)已安装正确。

另外,需要提醒读者的是,Python是没有平台区分的,这里指的平台不是指Linux和Mac这样的平台概念,而是在Windows上没有位数的区分。举个简单的例子,比如你是64位的Windows系统,你可以安装32位的Python。对于这一部分的详细说明,可以参阅译者的一篇博文Django配置MySQL最后一段的说明。好了,关于Python(x,y)的安装说明就说到这里。

0.3 安装PCV库

PCV库是原书作者写的一个第三方库,书中几乎所有的实例到要用到改库。假设你已从下载本书由译者整理的中译版源码,从Windows cmd终端进入PCV所在目录:

cd PCV
python setup.py install

运行上面命令,即可完成PCV库的安装。为了验证PCV库是否安装成功,在运行上面命令后,可以打开Python自带的Shell,在Shell输入:

import PCV

如果未报错,则表明你已成功安装了该PCV库。

0.4 VLfeat

VLFeat是一个跨平台的开源机器视觉库,它囊括了当前流行的机器视觉算法,如SIFT, MSER, HOG, 同时还包含了诸如K-MEANS, Hierarchical K-means的聚类算法。本书中主要在提取sift特征时用到了VLfeat。

Python计算机视觉:安装

如上图所示,从红色框标的地方下载VLFeat,解压:

Python计算机视觉:安装

你需要的仅是对应平台的可执行文件,译者系统是32位的,所以选用的是win32。注意目前VLFeat最新发布版已到0.9.18了。对于0.9.18,目录结构和0.9.17的一样,所以你也仅需bin下对应的文件夹下的可执行文件。 将该win32拷贝到你想放置的某个目录,译者将其放置在计算机的如下目录:

Python计算机视觉:安装

需要注意的是,译者将原来的“bin”文件名重新"win32vlfeat"。完成该步骤后,进入PCV所在目录:

Python计算机视觉:安装

打开sift.py,找到下面代码:

def process_image(imagename,resultname,params="--edge-thresh 10 --peak-thresh 5"):
    """ process an image and save the results in a file"""

    if imagename[-3:] != 'pgm':
        #create a pgm file
        im = Image.open(imagename).convert('L')
        im.save('tmp.pgm')
        imagename = 'tmp.pgm'

    cmmd = str("D:\mltools\win32vlfeat\sift.exe "+imagename+" --output="+resultname+
                " "+params)
    os.system(cmmd)
    print 'processed', imagename, 'to', resultname

将cmmd中的目录修改为你自己放置的Vlfeat bin所在目录。这里稍微解释一下os.system(cmmd)这句话的意思,这里Python通过os.system()调用外部可执行文件,也就是Vlfeat bin目录下的sift.exe。

好了,安装完后,你便可以运行书中的大部分实例代码了。这里之所以是“大部分”是因为书中的某些实例,还要用到别的库。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
2年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Wesley13 Wesley13
2年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Wesley13 Wesley13
2年前
4cast
4castpackageloadcsv.KumarAwanish发布:2020122117:43:04.501348作者:KumarAwanish作者邮箱:awanish00@gmail.com首页:
Stella981 Stella981
2年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
2年前
Python 环境搭建
pythonbug集目录\toc\00python模块下载地址pyhton模块下载地址(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.lfd.uci.edu%2F%7Egohlke%2Fpythonlibs%2F)01pythonpip
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这