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实现的扫雷游戏实例代码
Aug 01 Python
在Docker上部署Python的Flask框架的教程
Apr 08 Python
基于python历史天气采集的分析
Feb 14 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
Pytorch Tensor的索引与切片例子
Aug 18 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
Python3爬虫带上cookie的实例代码
Jul 28 Python
python如何实时获取tcpdump输出
Sep 16 Python
Python 制作自动化翻译工具
Apr 25 Python
python 学习GCN图卷积神经网络
May 11 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
人大复印资料处理程序_补充篇
2006/10/09 PHP
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
JavaScript入门基础
2015/08/12 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
async/await地狱该如何避免详解
2018/05/10 Javascript
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Python实现视频下载功能
2017/03/14 Python
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
python 实现任务管理清单案例
2020/04/25 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
银行实习自我鉴定
2013/10/12 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
安全责任协议书
2014/04/21 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
2015年学生会纪检部工作总结
2015/03/31 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android