use*_*702 5 python urllib2 scikit-learn scikit-image imread
是否可以从URL加载skimage(numpy矩阵)格式的图像而无需创建临时文件?
skimage本身使用临时文件:https : //github.com/scikit-image/scikit-image/blob/master/skimage/io/util.py#L23
有什么方法可以直接传递urlopen(url).read()到imread.imread()(或任何其他图像阅读库)?
import matplotlib.pyplot as plt
from skimage import io
image=io.imread ('https://i.stack.imgur.com/yt0Xo.jpg')
plt.imshow(image)
plt.show()
Run Code Online (Sandbox Code Playgroud)
从imread文档:
图像文件名,例如test.jpg 或URL
因此,您可以直接传递您的URL:
io.imread(url)
Run Code Online (Sandbox Code Playgroud)
请注意,它仍然会创建一个用于处理图像的临时文件...
编辑:
该库imread还具有imread_from_blob接受字符串作为输入的方法。因此,您可以将数据直接传递给此函数。
from imread import imread_from_blob
img_data = imread_from_blob(data, 'jpg')
>>> img_data
array([[[ 23, 123, 149],
[ 22, 120, 147],
[ 22, 118, 143],
...,
Run Code Online (Sandbox Code Playgroud)
第二个参数是通常与此斑点关联的扩展名。如果没有给出,则detect_format用于自动检测。