[Python]SimpleCV 计算机视觉处理模块 - 安装以及代码示例

模块安装指南、简介、实例、探讨
回复
头像
vicyang
版主
版主
帖子: 56
注册时间: 2016年07月21日 20:35
联系:

[Python]SimpleCV 计算机视觉处理模块 - 安装以及代码示例

帖子 vicyang »

SimpleCV 是一个简化封装过的 OpenCV 接口,用户可以在没有深入学习 OpenCV 的情况下通过 SimpleCV 进行计算机视觉处理

官网:http://simplecv.org/

Latest Stable Release: SimpleCV Version 1.3 Superpack
这个 Superpack 192MB,包含了与之配对的 python 2.7 运行环境,以及安装相关的库比如:
NumPy, Scipy, pygame, PIL
在安装过程中仍然有些包安装失败(但不影响一般的使用),so sad。

以及在测试某个示例的时候提示缺少 image 包, pip install Image 后问题解决。
头像
vicyang
版主
版主
帖子: 56
注册时间: 2016年07月21日 20:35
联系:

Anaconda Python2.7 安装 SimpleCV

帖子 vicyang »

Anaconda Python2.7环境,安装 SimpleCV
Edit By: vicyang / Website: www.code-by.org

环境:Win7 64bit, Anaconda 4.3.1

首先在 Anaconda 安装 Python 2.7 以及 SimpleCV
conda create -n python2 python=2.7 activate python2 pip install SimpleCV
但是这个库有其他依赖,还得手动安装

问题1:
  • import SimpleCV
    ImportError: No module named pygame
    解决方法:
    pip install pygame
问题2:
  • import SimpleCV
    ImportError: No module named scipy.ndimage

    尝试:
    pip install scipy
    提示:
    distutils.errors.DistutilsError: Setup script exited with error: INCLUDE environment variable is empty ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in c:\users\username\appdata\local\temp\pip-build-ohv9_v\scipy\
    解决方法:
    Unofficial Windows Binaries for Python Extension Packages 找到对应环境版本的 Scipy ,
    留意备注: “Install numpy+mkl before installing scipy”,一并下载 Numpy+MKL 包
    scipy?0.19.0?cp27?cp27m?win_amd64.whl
    numpy?1.11.3+mkl?cp27?cp27m?win_amd64.whl
    (建议迅雷离线)

    注意 numpy 模块名中的 - 是 unicode 字符,安装提示
    (python2) F:\Download>pip install "numpy?1.11.3+mkl?cp27?cp27m?win_amd64.whl" Requirement 'numpy?1.11.3+mkl?cp27?cp27m?win_amd64.whl' looks like a filename, b ut the file does not exist numpy?1.11.3+mkl?cp27?cp27m?win_amd64.whl is not a valid wheel filename.
    手动改为"-",或者改成其他名字再安装:
    pip install "numpy-1.11.3+mkl-cp27-cp27m-win_amd64.whl" pip install scipy-0.19.0-cp27-cp27m-win_amd64.whl
问题3:
问题4
  • from SimpleCV import Camera, Display, Image
    import time
    cam = Camera() # Initialize the camera
    display = Display() # Initialize the display
    img = cam.getImage() # Snap a picture using the camera
    img.drawText("Hello World!") # Show some text
    img.save(display) # Show the picture on the screen
    time.sleep(5)
    (python2) Desktop\>python cv.py ERROR: Traceback (most recent call last): File "cv.py", line 6, in <module> display = Display() File "C:\Anaconda3\envs\python2\lib\site-packages\SimpleCV\Display.py", line > 1 58, in __init__ scvLogo = SimpleCV.Image("simplecv").scale(32,32) File "C:\Anaconda3\envs\python2\lib\site-packages\SimpleCV\ImageClass.py", > lin e 787, in __init__ self._pil = pil.open(self.filename).convert("RGB") NameError: global name 'pil' is not defined
    解决方案1:
    • pip install pillow

      (a replacement for PIL, the Python Image Library, which provides image processing functionality and supports many file formats. Use from PIL import Image instead of import Image.)
    其他方案:
    • http://effbot.org/downloads/#Imaging 下载 exe 安装包

      但是安装提示:
      Cannot install
      Python version 2.7 required, which was not found in the registry.

      按照说明 http://effbot.org/zone/python-register.htm ,用管理权限运行 register 脚本, 还是不行。

      最后使用( python的模块安装途径这么多,总有一种让你满意 XD )
      activate python2
      conda install pil
      安装成功
总结:
  • 前面写这么多过程纯粹是累积关键词,实际过程就是:
    从第三方Python库网站下载依赖的模块(特别是那些直接 pip install 下载安装失败的)并按如下顺序安装:
    pip install numpy-1.11.3+mkl-cp27-cp27m-win_amd64.whl pip install scipy-0.19.0-cp27-cp27m-win_amd64.whl pip install opencv_python-2.4.13.2-cp27-cp27m-win_amd64.whl pip install pygame pip install SimpleCV pip install pillow
其他问题:
  • (python2) C:\>python cv.py OpenCV Error: Bad argument (Array should be CvMat or IplImage) in cvGetSize, file ..\..\..\opencv-2.4.13.2\modules\core\src\array.cpp, line 1238 ERROR: Traceback (most recent call last): File "cv.py", line 8, in <module> img = cam.getImage() File "C:\Anaconda3\envs\python2\lib\site-packages\SimpleCV\Camera.py", line 58 6, in getImage newimg = cv.CreateImage(cv.GetSize(frame), cv.IPL_DEPTH_8U, 3) error: Array should be CvMat or IplImage
头像
vicyang
版主
版主
帖子: 56
注册时间: 2016年07月21日 20:35
联系:

示例代码以及问题解决 - IOError: [Errno 2] No such file or directory: 'SimpleCV\\sampleimages\\simplecv.png'

帖子 vicyang »

第一个示例:hello.py
  • from SimpleCV import Display, Image
    display = Display()
    # Write to the display
    Image("logo").save(display)
    >Desktop\> activate python2 >(python2) Desktop\>python v.py ERROR: Traceback (most recent call last): fp = __builtin__.open(fp, "rb") IOError: [Errno 2] No such file or directory: 'C:\\Anaconda3\\envs\\python2\\lib \\site-packages\\SimpleCV\\sampleimages\\simplecv.png'
    原因是 python2 虽然安装了 SimpleCV,却不包含运行时所需的素材 sampleimages
解决方法:
  • SimpleCV Github 下载项目,复制里面的 sampleimages 到
    C:\Anaconda3\envs\python2\Lib\site-packages\SimpleCV
simplecv.png
(35.49 KiB) 已下载 1277 次
头像
vicyang
版主
版主
帖子: 56
注册时间: 2016年07月21日 20:35
联系:

error: Array should be CvMat or IplImage

帖子 vicyang »

Camera 图像获取
from SimpleCV import *
cam = Camera()

while True:
img = cam.getImage()
img.show()
错误提示:
OpenCV Error: Bad argument (Array should be CvMat or IplImage) in cvGetSize, fil e ..\..\..\opencv-2.4.13.2\modules\core\src\array.cpp, line 1238 ERROR: Traceback (most recent call last): File "hello.py", line 5, in <module> img = cam.getImage() File "C:\Anaconda3\envs\python2\lib\site-packages\SimpleCV\Camera.py", line 58 6, in getImage newimg = cv.CreateImage(cv.GetSize(frame), cv.IPL_DEPTH_8U, 3) error: Array should be CvMat or IplImage
如果没有安装摄像头,去买一个。如果安装了摄像头,将 cam = Camera() 改为 cam = Camera(0) 即可
回复

在线用户

正浏览此版面之用户: 没有注册用户 和 0 访客