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使用mysqldb连接数据库操作方法示例详解
Dec 03 Python
python实现带验证码网站的自动登陆实现代码
Jan 12 Python
Python3实现Web网页图片下载
Jan 28 Python
详解django中自定义标签和过滤器
Jul 03 Python
PyQt5每天必学之布局管理
Apr 19 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
Windows下Python3.6安装第三方模块的方法
Nov 22 Python
python创建与遍历List二维列表的方法
Aug 16 Python
关于python pycharm中输出的内容不全的解决办法
Jan 10 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
python实现简单贪吃蛇游戏
Sep 29 Python
pytorch model.cuda()花费时间很长的解决
Jun 01 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
PHP中IP地址与整型数字互相转换详解
2014/08/20 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
python基础教程之元组操作使用详解
2014/03/25 Python
python修改字典内key对应值的方法
2015/07/11 Python
python基于pyDes库实现des加密的方法
2017/04/29 Python
详解Python Qt的窗体开发的基本操作
2019/07/14 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
python实现图像外边界跟踪操作
2020/07/13 Python
西部世纪.net笔试题面试题
2014/04/03 面试题
《黄山奇石》教学反思
2014/04/19 职场文书
安全协议书
2014/04/23 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
遗失证明范文
2015/06/19 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
导游词之天津古文化街
2019/11/09 职场文书
Oracle 死锁的检测查询及处理
2021/09/25 Oracle