查看: 2316|回复: 0

SimpleCV安装和使用(用于图像处理、识别)

[复制链接]
  • TA的每日心情
    慵懒
    2015-8-11 09:37
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2015-8-7 14:53:42 | 显示全部楼层 |阅读模式
    分享到:
    本文经过作者同意并委托转载
    地址::文章地址

    • 安装SimpleCV
    SimpleCV的安装十分简便,首先通过apt-get工具安装支持包:
    $ sudo apt-get install ipython python-opencv python-scipy python-numpy python-pygame python-setuptools python-pip之后通过pip命令下载并安装SimpleCV:

    $ sudo pip install <a href="https://github.com/sightmachine/SimpleCV/zipball/develop">https://github.com/sightmachine/SimpleCV/zipball/d...</a>这样SimpleCV就安装完成了。在终端中输入simplecv即可进入SimpleCV shell。

    $ simplecv如果运行SimpleCV提示缺少相应的组件,也可以通过pip指令进行安装,如笔者在运行时提示缺少svgwirte。

    $ sudo pip install svgwrite
    图 SimpleCV shell
    与Python shell类似,使用SimpleCV shell的好处包括通过tab键自动补全,以及通过help命令方便地查询函数和模块的使用说明。

    图 执行help命令(懒得开树莓截图了,抠一张Ubuntu下的图)
    另外还可以访问SimpleCV的官方网站https://simplecv.org/查询API帮助并获取入门指导,或阅读Kurt Demaagd等人编著的书籍《Practical Computer Vision with SimpleCV》。
    安装完成后,将USB摄像头连接至树莓派,在SimpleCV shell中输入下面的指令来测试图像捕获功能,即通过SimpleCV拍照。第一句指令初始化摄像头,第二句从摄像头获取一帧图像并保存在img变量中,最后一句则将img中保存的图像显示在屏幕上。

    图 使用SimpleCV拍照
    在Python中使用SimpleCV只需要import模块即可,下面的Python代码实现了相同的拍照效果

    import SimpleCV as scvimport time cam = scv.Camera()img = cam.getImage()img.show()time.sleep(10)将代码保存为cap.py,在终端中运行指令:

    python cap.py

    • 图像的输入、输出
    SimpleCV支持多种灵活的图像输入、输出方式。下面的命令分别用于读取SimpleCV内置图片、本地保存的图片,以及网络图片。

    SimpleCV:1> img1 = Image(“logo”)SimpleCV:2> img2 = Image(“local_img.jpg”)SimpleCV:3> img3 = Image(“http : //simplecv.org/assets/SM_logo_color. png”)获取到的图片,通过save()函数可以保存为多种图片格式。

    SimpleCV:1> cam=Camera()SimpleCV:2> img=cam.getImage()SimpleCV:3> img.save(“pic.jpg”)SimpleCV:4> img.save(“pic.png”)SimpleCV:5> img.save(“pic.bmp”)对于动态图像的采集,只需要通过逐帧捕获图像,并连续地显示在屏幕上。下面的代码演示了摄像头的连续显示方法:

    import SimpleCV as scvimport time cam = scv.Camera()display = scv.Display(resolution = (800, 600)) while display.isNotDone():    img = cam.getImage()img.save(display)代码中的Display模块会以窗口的形式显示,其大小通过resolution属性设定。将图片通过save()函数保存至display就会显示在窗口中。display.isNotDone()用来检测窗口是否被关闭,如果不关闭窗口程序将循环采集和显示摄像头图像。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 04:10 , Processed in 0.107514 second(s), 14 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.