您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Python如何通过URL实现打开图片的实例详解

2025/2/17 9:21:33发布25次查看
这篇文章主要介绍了python 通过url打开图片实例详解的相关资料,需要的朋友可以参考下
python 通过url打开图片实例详解
不论是用opencv还是pil,skimage等库,在之前做图像处理的时候,几乎都是读取本地的图片。最近尝试爬虫爬取图片,在保存之前,我希望能先快速浏览一遍图片,然后有选择性的保存。这里就需要从url读取图片了。查了很多资料,发现有这么几种方法,这里做个记录。
本文用到的图片url如下:
img_src = 'http://wx2.sinaimg.cn/mw690/ac38503ely1fesz8m0ov6j20qo140dix.jpg'
1.用opencv
opencv的imread()只能加载本地的图片,并不能通过网址加载图片。但是,opencv的videocapture类可以从url加载视频。如果只用opencv的话,我们可以一个迂回的方式:先用videocapure加载网址下的图片,然后再传给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返回 一个类文件对象,它提供了如下方法:
read() , readline() , readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样。然后把返回的类文件对象重新编码,转换为图片传给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能以字节的方式访问请求响应体,以上就是以请求返回的二进制数据创建一张图片的代码。
4. skimage
from skimage import io image = io.imread(img_src) io.imshow(image) io.show()
相对来说,这种方式应该是最简单的,因为skimage可以直接以imread()函数来读取网页图片,而不需要其他的辅助,也不需要迂回。
以上就是python如何通过url实现打开图片的实例详解的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product