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

模块安装指南、简介、实例、探讨
头像
vicyang
版主
版主
帖子: 47
注册时间: 2016年07月21日 20:35
拥有现金: 锁定
储蓄: 锁定
Has thanked: 7 times
联系:

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

帖子 #1 vicyang » 2017年04月19日 19:00

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
版主
版主
帖子: 47
注册时间: 2016年07月21日 20:35
拥有现金: 锁定
储蓄: 锁定
Has thanked: 7 times
联系:

Anaconda Python2.7 安装 SimpleCV

帖子 #2 vicyang » 2017年04月19日 19:59

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:

    import SimpleCV
    ImportError: Cannot load OpenCV library which is required by SimpleCV

    尝试:
    pip install OpenCV
    提示:

    Collecting OpenCV
    Could not find a version that satisfies the requirement OpenCV (from vrsions:
    )
    No matching distribution found for OpenCV
    解决方法:
    从 [url=http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy) 下载 [opencv_python?2.4.13.2?cp27?cp27m?win_amd64.whl](http://www.lfd.uci.edu/~gohlke/pythonli ... _amd64.whl]Unofficial Windows Binaries for Python Extension Packages[/url]

    pip install opencv_python-2.4.13.2-cp27-cp27m-win_amd64.whl

问题4

    Code: [全选] [展开/收缩] [Download] (untitle.py)
    1. from SimpleCV import Camera, Display, Image
    2. import time
    3. cam = Camera()        # Initialize the camera
    4. display = Display()   # Initialize the display
    5. img = cam.getImage()  # Snap a picture using the camera
    6. img.drawText("Hello World!")     # Show some text
    7. img.save(display)     # Show the picture on the screen
    8. 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
版主
版主
帖子: 47
注册时间: 2016年07月21日 20:35
拥有现金: 锁定
储蓄: 锁定
Has thanked: 7 times
联系:

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

帖子 #3 vicyang » 2017年04月23日 12:26

第一个示例:hello.py

    Code: [全选] [展开/收缩] [Download] (untitle.py)
    1. from SimpleCV import Display, Image
    2. display = Display()
    3. # Write to the display
    4. 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
simplecv.png (35.49 KiB) 查看 671 次
simplecv.png
simplecv.png (35.49 KiB) 查看 671 次

头像
vicyang
版主
版主
帖子: 47
注册时间: 2016年07月21日 20:35
拥有现金: 锁定
储蓄: 锁定
Has thanked: 7 times
联系:

error: Array should be CvMat or IplImage

帖子 #4 vicyang » 2017年04月23日 13:14

Camera 图像获取

Code: [全选] [展开/收缩] [Download] (Camera.py)
  1. from SimpleCV import *
  2. cam = Camera()
  3.  
  4. while True:
  5.     img = cam.getImage()
  6.     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) 即可


回到 “模块”

在线用户

用户浏览此论坛: 没有注册用户 和 2 访客