Maison > Article > développement back-end > Explication détaillée de la façon dont Python ouvre une image via une URL
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!