下载图像为numpy数组时Python崩溃

时间:2013-03-03 06:43:57

标签: python numpy python-3.x scipy urllib

为什么以下代码崩溃python?是否有更简单/更好的方法来下载图像并将其转换为numpy数组?

from pylab import *
from urllib import request
captcha=imread(request.urlopen('http://pastebin.com/etc/CaptchaSecurityImages.php?width=100&height=35&characters=4&b=123'))

请注意,这会导致python解释器退出,而不仅仅是打印堆栈跟踪。

1 个答案:

答案 0 :(得分:5)

几个问题:

  1. imread无法检测到图片类型,默认为png
  2. matplotlib的_png.read_png crashes on Python 3 with urllib.request object
  3. request.urlopen对象缺少搜索功能,不能与PIL一起使用(matplotlib使用PIL读取非png图像)。
  4. 此代码适用于win-amd64-py3.3:

    from pylab import *
    from urllib import request
    from io import BytesIO
    url = 'http://pastebin.com/etc/CaptchaSecurityImages.php?width=100&height=35&characters=4&b=123'
    data = BytesIO(request.urlopen(url).read())
    captcha = imread(data, format='jpg')