Maison  >  Article  >  développement back-end  >  Explication détaillée de la façon dont Python ouvre une image via une URL

Explication détaillée de la façon dont Python ouvre une image via une URL

黄舟
黄舟original
2017-06-04 10:16:162245parcourir

Cet article présente principalement les informations pertinentes sur des exemples détaillés de Python ouvrant des images via une URL. Les amis dans le besoin peuvent se référer à

Python via une URL. Explication détaillée des exemples d'images d'ouverture

Que ce soit en utilisant OpenCV ou PIL, skimage et d'autres bibliothèques, lors du traitement d'image auparavant, presque toutes les images locales étaient lues. J'ai récemment essayé d'explorer des images. Avant de les enregistrer, je souhaitais parcourir rapidement les images, puis les enregistrer de manière sélective. Ici, vous devez lire l'image à partir de l'URL. J'ai vérifié beaucoup d'informations et j'ai découvert qu'il existe plusieurs méthodes que je vais enregistrer ici.

L'URL de l'image utilisée dans cet article est la suivante :

img_src = 'http://wx2.sinaimg.cn/mw690/ac38503ely1fesz8m0ov6j20qo140dix.jpg'

1 L'utilisation d'OpenCV

imread() d'OpenCV peut. charger uniquement Les images locales ne peuvent pas être chargées via des URL. Cependant, la classe VideoCapture d'opencv peut charger vidéo à partir de l'URL. Si nous utilisons uniquement opencv, nous pouvons utiliser une méthode détournée : utilisez d'abord VideoCapure pour charger l'image sous l'URL, puis transmettez-la à 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 renvoie un fichier de classe objet , qui fournit les méthodes suivantes :

read(), readline(), readlines(), fileno(), close() : Ces méthodes s'utilisent de la même manière comme objet fichier Exactement la même chose. Ensuite, réencodez l'objet de type fichier renvoyé, convertissez-le en image et transmettez-le à 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()

les requêtes peuvent accéder au corps de la réponse de la requête en octets. Ce qui précède consiste à créer une image avec les données binaires renvoyées par le. demande.

4. skimage

from skimage import io
image = io.imread(img_src)
io.imshow(image)
io.show()

Relativement parlant, cette méthode devrait être la plus simple, car skimage peut utiliser directement la fonction imread() Pour lire des images Web sans aucune autre aide ni détour.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn