查看: 15463|回复: 14

[原创] 【懒兔子玩树莓】SimpleCV安装和使用(用于图像处理、识别)

  [复制链接]
  • TA的每日心情
    无聊
    2015-8-17 09:38
  • 签到天数: 361 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2015-7-13 23:06:12 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 懒兔子 于 2015-7-13 23:10 编辑

    • 安装SimpleCV

    SimpleCV的安装十分简便,首先通过apt-get工具安装支持包:

    1. $ sudo apt-get install ipython python-opencv python-scipy python-numpy python-pygame python-setuptools python-pip
    复制代码

    之后通过pip命令下载并安装SimpleCV:

    1. $ sudo pip install https://github.com/sightmachine/SimpleCV/zipball/develop
    复制代码

    这样SimpleCV就安装完成了。在终端中输入simplecv即可进入SimpleCV shell。

    1. $ simplecv
    复制代码

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

    1. $ sudo pip install svgwrite
    复制代码

    图 SimpleCV shell


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

    图 执行help命令(懒得开树莓截图了,抠一张Ubuntu下的图)


    另外还可以访问SimpleCV的官方网站http://simplecv.org/查询API帮助并获取入门指导,或阅读Kurt Demaagd等人编著的书籍《Practical Computer Vision with SimpleCV》。


    安装完成后,将USB摄像头连接至树莓派,在SimpleCV shell中输入下面的指令来测试图像捕获功能,即通过SimpleCV拍照。第一句指令初始化摄像头,第二句从摄像头获取一帧图像并保存在img变量中,最后一句则将img中保存的图像显示在屏幕上。

    1. SimpleCV:1> cam=Camera()
    2. SimpleCV:2> img=cam.getImage()
    3. SimpleCV:3> img.show()
    复制代码

    图 使用SimpleCV拍照


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

    1. import SimpleCV as scv
    2. import time

    3. cam = scv.Camera()
    4. img = cam.getImage()
    5. img.show()
    6. time.sleep(10)
    复制代码

    将代码保存为cap.py,在终端中运行指令:

    1. python cap.py
    复制代码
    • 图像的输入、输出

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

    1. SimpleCV:1> img1 = Image(“logo”)
    2. SimpleCV:2> img2 = Image(“local_img.jpg”)
    3. SimpleCV:3> img3 = Image(“http : //simplecv.org/assets/SM_logo_color. png”)
    复制代码

    获取到的图片,通过save()函数可以保存为多种图片格式。

    1. SimpleCV:1> cam=Camera()
    2. SimpleCV:2> img=cam.getImage()
    3. SimpleCV:3> img.save(“pic.jpg”)
    4. SimpleCV:4> img.save(“pic.png”)
    5. SimpleCV:5> img.save(“pic.bmp”)
    复制代码

    对于动态图像的采集,只需要通过逐帧捕获图像,并连续地显示在屏幕上。下面的代码演示了摄像头的连续显示方法:

    1. import SimpleCV as scv
    2. import time

    3. cam = scv.Camera()
    4. display = scv.Display(resolution = (800, 600))

    5. while display.isNotDone():
    6.     img = cam.getImage()
    7. img.save(display)
    复制代码

    代码中的Display模块会以窗口的形式显示,其大小通过resolution属性设定。将图片通过save()函数保存至display就会显示在窗口中。display.isNotDone()用来检测窗口是否被关闭,如果不关闭窗口程序将循环采集和显示摄像头图像。

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-15 09:30
  • 签到天数: 162 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-7-15 10:20:49 | 显示全部楼层
    多谢兔子分享,学习!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-7-15 14:17
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2015-7-15 14:18:15 | 显示全部楼层
    新手学习!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-1-16 10:58
  • 签到天数: 602 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2015-7-15 23:38:50 | 显示全部楼层
    顶起,请教一个问题,用各种软件开启连接树莓派的USB摄像头都遇到“Device or resource busy”的情况,楼主有什么好的建议或解决办法吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2015-8-17 09:38
  • 签到天数: 361 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2015-7-16 10:02:09 | 显示全部楼层
    你的摄像头在树莓派上有可以用的时候吗,还是一直不能用?
    换个摄像头试试吧,可能驱动和摄像头不兼容或者你用的软件不行
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-8-5 11:09
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2015-7-20 09:18:52 | 显示全部楼层
    好教程!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2023-3-9 16:16
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2015-7-20 09:19:19 | 显示全部楼层
    杉树林-罗 发表于 2015-7-15 23:38
    顶起,请教一个问题,用各种软件开启连接树莓派的USB摄像头都遇到“Device or resource busy”的情况,楼主 ...

    帮楼主把答案回复你,
    你的摄像头在树莓派上有可以用的时候吗,还是一直不能用?
    换个摄像头试试吧,可能驱动和摄像头不兼容或者你用的软件不行
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-1-16 10:58
  • 签到天数: 602 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2015-7-20 16:25:45 | 显示全部楼层
    loveeeboard 发表于 2015-7-20 09:19
    帮楼主把答案回复你,
    你的摄像头在树莓派上有可以用的时候吗,还是一直不能用?
    换个摄像头试试吧, ...

    属于一直不能用的情况,不过在/dev 下面找得到vedio0这个设备。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2015-8-17 09:38
  • 签到天数: 361 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2015-7-20 22:10:06 | 显示全部楼层
    杉树林-罗 发表于 2015-7-20 16:25
    属于一直不能用的情况,不过在/dev 下面找得到vedio0这个设备。。。

    嗯,那还是换个摄像头试试吧。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2015-8-17 09:38
  • 签到天数: 361 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2015-7-20 22:10:42 | 显示全部楼层
    loveeeboard 发表于 2015-7-20 09:19
    帮楼主把答案回复你,
    你的摄像头在树莓派上有可以用的时候吗,还是一直不能用?
    换个摄像头试试吧, ...

    哈哈,多谢
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-4-25 08:41 , Processed in 0.195802 second(s), 33 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.