Python 通过URL打开图片实例详解

 更新时间:2017年06月01日 14:36:58   投稿:lqh  
这篇文章主要介绍了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()函数来读取网页图片,而不需要其他的辅助,也不需要迂回。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Pandas+Matplotlib 箱式图异常值分析示例

    Pandas+Matplotlib 箱式图异常值分析示例

    今天小编就为大家分享一篇Pandas+Matplotlib 箱式图异常值分析示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • mac下pycharm设置python版本的图文教程

    mac下pycharm设置python版本的图文教程

    今天小编就为大家分享一篇mac下pycharm设置python版本的图文教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python使用装饰器进行django开发实例代码

    Python使用装饰器进行django开发实例代码

    这篇文章主要介绍了Python使用装饰器进行django开发实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • python在windows下实现ping操作并接收返回信息的方法

    python在windows下实现ping操作并接收返回信息的方法

    这篇文章主要介绍了python在windows下实现ping操作并接收返回信息的方法,实例分析了Python实现ping操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PyQt5每天必学之组合框

    PyQt5每天必学之组合框

    这篇文章主要为大家详细介绍了PyQt5每天必学之组合框,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • python Pydub简单易用的音频处理库使用实例探索

    python Pydub简单易用的音频处理库使用实例探索

    Pydub是一个简单易用的Python库,它让音频处理变得像处理列表或字符串一样简单,你可以用Pydub来剪辑、合并、调整音频文件,以及执行许多其他的音频处理任务,它支持多种音频格式,包括常见的MP3、WAV和AAC
    2024-01-01
  • Python中的 if 语句及使用方法

    Python中的 if 语句及使用方法

    这篇文章主要介绍了Python中的 if 语句及使用方法,包括条件测试、if -else 语句、if -elif-else 语句以及使用 if 语句处理列表操作,下面内容详细介绍组要的小伙伴可以参考一下
    2022-03-03
  • python自动点赞功能的实现思路

    python自动点赞功能的实现思路

    这篇文章主要介绍了python自动点赞功能的实现思路,点赞功能不处不见,特别是微信朋友圈,一些商家运用点赞数量搞活动。今天小编给大家分享实现思路及代码,感兴趣的朋友一起看看吧
    2020-02-02
  • Django csrf校验的实现

    Django csrf校验的实现

    这篇文章主要介绍了Django csrf校验的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • python 实现读取一个excel多个sheet表并合并的方法

    python 实现读取一个excel多个sheet表并合并的方法

    今天小编就为大家分享一篇python 实现读取一个excel多个sheet表并合并的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02

最新评论