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


Posted in Python onJune 01, 2017

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 相关文章推荐
详解python的webrtc库实现语音端点检测
May 31 Python
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
Dec 25 Python
Python2中文处理纪要的实现方法
Mar 10 Python
python实现在pandas.DataFrame添加一行
Apr 04 Python
python将一组数分成每3个一组的实例
Nov 14 Python
Python定义函数功能与用法实例详解
Apr 08 Python
python装饰器练习题及答案
Nov 01 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
Apr 08 Python
Python 实现将某一列设置为str类型
Jul 14 Python
Python字符串的转义字符
Apr 07 Python
Django框架之路由用法
Jun 10 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
Jun 01 #Python
python 内置函数filter
Jun 01 #Python
python读取二进制mnist实例详解
May 31 #Python
Python算术运算符实例详解
May 31 #Python
Python简单的制作图片验证码实例
May 31 #Python
详解python的webrtc库实现语音端点检测
May 31 #Python
python实现决策树C4.5算法详解(在ID3基础上改进)
May 31 #Python
You might like
php部分常见问题总结
2008/03/27 PHP
PHP strtotime函数详解
2009/12/18 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
PHP多线程类及用法实例
2014/12/03 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
初识Node.js
2015/03/20 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
Python使用gensim计算文档相似性
2016/04/10 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
python带参数打包exe及调用方式
2019/12/21 Python
小结Python的反射机制
2020/09/28 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
临床医师个人自我评价
2014/04/06 职场文书
关于环保的演讲稿
2014/05/10 职场文书
大专学生求职信
2014/07/04 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
药店采购员岗位职责
2014/09/30 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
《山中访友》教学反思
2016/02/24 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
Mybatis-Plus 使用 @TableField 自动填充日期
2022/04/26 Java/Android