是否可以从URL加载skimage(numpy矩阵)格式的图像而无需创建临时文件?
skimage本身使用临时文件:https://github.com/scikit-image/scikit-image/blob/master/skimage/io/util.py#L23
有没有办法直接将ul
传递给urlopen(url).read()
(或任何其他图片阅读库)?
答案 0 :(得分:1)
import matplotlib.pyplot as plt
from skimage import io
image=io.imread ('https://YOUR-IMAGE-URL')
plt.imshow(image)
plt.show()
答案 1 :(得分:0)
有点棘手,但有效(在Python 3.4上)。 似乎skimage本身无法解析缓冲区中的图像。但无论如何它无论如何都会隐含地使用枕头。
您需要使用下载的数据填充BytesIO缓冲区,然后将其提供给PIL.Image,然后从中创建skimage.io.Image。
from urllib.request import urlopen
from io import BytesIO
from PIL import Image
from skimage import io
url = 'http://www.musicnowsg.com/wp-content/uploads/2013/12/grumpy-jazz-cat.jpg'
response = urlopen(url)
buf = BytesIO(response.read())
im = Image.open(buf)
a = io.Image(im)
io.imshow(a)
io.show()