Is it possible to load image in skimage (numpy matrix) format from URL without creating temporary file?
skimage itself uses temporary files: https://github.com/scikit-image/scikit-image/blob/master/skimage/io/util.py#L23
Is there any way to pass urlopen(url).read()
to imread.imread()
(or any other image reading library) directly?
From imread
documentation:
Image file name, e.g. test.jpg or URL
So you can directly pass your URL:
io.imread(url)
Notice that it will still create a temporary file for processing the image...
Edit:
The library imread
also have a method imread_from_blob
which accept a string as input. So you may pass your data directly to this function.
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],
...,
The second parameter is the extension typically associated with this blob. If None is given, then detect_format
is used to auto-detect.
import matplotlib.pyplot as plt
from skimage import io
image=io.imread ('https://i.stack.imgur.com/yt0Xo.jpg')
plt.imshow(image)
plt.show()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With