关于SimpleCV的介绍可以自行百度或者简单的参考一下老师提供的帮助手册《爱上Raspberry Pi》的P152.
注意:因为帮助手册很老了,,,特别是代码部分,好多库和函数应该都已经重构过了,所以仅供参考。否则会像我一样被搞到心态爆炸 *^*.......
推荐参考SimpleCV的官网进行学习:http://tutorial.simplecv.org/en/latest/index.html
本篇文章仅提供一种SimpleCV的简单安装方法:(本人也是在走了很多弯路之后偶遇一篇博文,历经磨难之后才成功了,写下来送给可爱的同学们~~~)
一、SimpleCV的安装
1、首先需要安装依赖包:
sudo apt-get install ipython python-opencv python-scipy python-numpy python-pygame python-setuptools git
2、到github上克隆软件仓库到本地:
git clone https://github.com/sightmachine/SimpleCV.git
3、然后进入到SimpleCV的目录下:
cd /SimpleCV
4、开始安装依赖库:
sudo pip install -r requirements.txt
执行之后发现报错:
我们使用vim进行编辑requirements.txt,将里面不需要安装的注释掉:最后只留下:svgwrite ,然后再执行上条命令。
(下载vim:sudo apt-get install vim ,关于vim的使用方法:http://www.runoob.com/linux/linux-vim.html)
其实也可以不执行 sudo pip install -r requirements.txt ,只执行 sudo pip install svgwrite ,也是同样的效果。
5、之后正式进行安装:
sudo python setup.py install
安装没报错之后就万事大吉,可以开始测试了!
二、SimpleCV的调试:
首先在命令行下面直接输入:simplecv,进入SimpleCV的shell界面;
可能会报以下的错误:
表示我们还有模块没装好,运行下列代码进行安装:
sudo pip install 'IPython==4' --force-reinstall
之后再在命令行下面输入:simplecv ,成功进入的话就可以开始测试了。
(按照上述步骤操作可能还是会有其他的报错,同学们可以及时在博客下面评论留言告诉我,或者QQ联系我,我会尽力解答)
三、测试
1、在SimpleCV shell中输入下面的指令来测试图像捕获功能,即通过SimpleCV拍照。
SimpleCV:1> cam=Camera()
SimpleCV:2> img=cam.getImage()
SimpleCV:3> img.show()
第一句指令初始化摄像头,第二句从摄像头获取一帧图像并保存在img变量中,最后一句则将img中保存的图像显示在屏幕上。
图 使用SimpleCV拍照
2、在Python中使用SimpleCV只需要import模块即可,下面的Python代码实现了相同的拍照效果:
import SimpleCV as scv
import time
cam = scv.Camera()
img = cam.getImage()
img.show()
time.sleep(10)
将代码保存为cap.py,在终端中运行指令:
python cap.py
就可以看到和步骤1同样的运行效果了。
扩展:
图像的输入、输出
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 scv
import 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()用来检测窗口是否被关闭,如果不关闭窗口程序将循环采集和显示摄像头图像。
关于SimpleCV的进一步学习大家可以参考《爱上Raspberry Pi》的P152.,但是上面的代码太老了,仅供参考,想要学习SimpleCV的薪内容和新用法,建议参考SimpleCV的官网,链接如下:
http://tutorial.simplecv.org/en/latest/index.html
simplecv安装参考:https://blog.csdn.net/realdonaldtrump/article/details/78954984
simplecvt调试参考:http://www.eefocus.com/nightseas/blog/15-07/314520_6f011.html