Using python, I would like to download a Jpeg image given a URL and stored it in a numpy
array for processing later. What library should I use?
Asked
Active
Viewed 5,477 times
5
-
Does this answer your question? [Python - how to read an image from a URL?](https://stackoverflow.com/questions/40911170/python-how-to-read-an-image-from-a-url) – fabianegli Jan 13 '20 at 21:19
-
Try scikit-image: https://stackoverflow.com/a/40911860/6018688 i.e. `from skimage import io; io.imread(url)` – fabianegli Jan 13 '20 at 21:22
2 Answers
6
There are a number of libraries that can be used for this task. The one that I've used in the past is from scikit-image
:
import skimage
image_filename = "http://example.com/example.jpg"
image_numpy = skimage.io.imread( image_filename )

jss367
- 4,759
- 14
- 54
- 76

Jason K Lai
- 1,500
- 5
- 15
4
You can use either request
library or wget
library to handle download the image. And then use cv2 to open as numpy array
wget
is faster, pip install wget
Example (wget):
import cv2, wget
image_url = 'https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png'
filename = wget.download(image_url)
np_image = cv2.imread(filename)
Example (request)
import requests, io, cv2
import numpy as np
from PIL import Image
response = requests.get('https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png')
bytes_im = io.BytesIO(response.content)
cv_im = cv2.cvtColor(np.array(Image.open(bytes_im)), cv2.COLOR_RGB2BGR)

Robin XW
- 71
- 6