This article mainly introduces the relevant information of Python opening pictures through URL. Friends in need can refer to
Python through URL Detailed explanation of opening image examples
Whether you use OpenCV or PIL, skimage and other libraries, when doing image processing before, you almost always read local images. I recently tried crawling pictures. Before saving, I wanted to quickly browse the pictures and then save them selectively. Here you need to read the image from the url. I checked a lot of information and found that there are several methods. I will make a record here.
The image URL used in this article is as follows:
img_src = 'http://wx2.sinaimg.cn/mw690/ac38503ely1fesz8m0ov6j20qo140dix.jpg'
1. Using OpenCV
OpenCV’s imread() can only load local ones Pictures cannot be loaded through URLs. However, opencv's VideoCapture class can load videos from url. If we only use opencv, we can use a roundabout way: first use VideoCapure to load the image under the URL, and then pass it to Mat.
import cv2 cap = cv2.VideoCapture(img_src) if( cap.isOpened() ) : ret,img = cap.read() cv2.imshow("image",img) cv2.waitKey()
2. OpenCV+Numpy+urllib
import numpy as np import urllib import cv2 resp = urllib.urlopen(img_src) image = np.asarray(bytearray(resp.read()), dtype="uint8") image = cv2.imdecode(image, cv2.IMREAD_COLOR) cv2.imshow("Image", image) cv2.waitKey(0)
urlopen returns a class file object , which provides the following methods:
read() , readline() , readlines() , fileno() , close() : These methods are used exactly like file objects. Then re-encode the returned file-like object, convert it into a picture and pass it to Mat.
3.PIL+requests
import requests as req from PIL import Image from io import BytesIO response = req.get(img_src) image = Image.open(BytesIO(response.content)) image.show()
requests can access the request response body in bytes. The above is the code to create a picture with the binary data returned by the request. .
4. skimage
from skimage import io image = io.imread(img_src) io.imshow(image) io.show()
Relatively speaking, this method should be the simplest, because skimage can directly use imread() function To read web page images without any other assistance or detours.
The above is the detailed content of Detailed explanation of how Python opens an image through a URL. For more information, please follow other related articles on the PHP Chinese website!