Home  >  Article  >  Backend Development  >  Detailed explanation of how Python opens an image through a URL

Detailed explanation of how Python opens an image through a URL

黄舟
黄舟Original
2017-06-04 10:16:162244browse

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn