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 中的列表解析和生成表达式
Mar 10 Python
在Python的框架中为MySQL实现restful接口的教程
Apr 08 Python
Python实现控制台输入密码的方法
May 29 Python
Linux CentOS7下安装python3 的方法
Jan 21 Python
解决pandas 作图无法显示中文的问题
May 24 Python
对Python中list的倒序索引和切片实例讲解
Nov 15 Python
Python函数返回不定数量的值方法
Jan 22 Python
在TensorFlow中屏蔽warning的方式
Feb 04 Python
pycharm设置默认的UTF-8编码模式的方法详解
Jun 01 Python
python对一个数向上取整的实例方法
Jun 18 Python
PyTorch的torch.cat用法
Jun 28 Python
Pytorch实现WGAN用于动漫头像生成
Mar 04 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批量检测并去除文件BOM头代码实例
2014/05/08 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
2019/12/03 PHP
Javascript的getYear、getFullYear、getUTCFullYear异同分享
2011/11/30 Javascript
jquery $("#variable") 循环改变variable的值示例
2014/02/23 Javascript
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
浅谈vue父子组件怎么传值
2018/07/21 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
详解vue-cli@2.x项目迁移日志
2019/06/06 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
Python编程修改MP3文件名称的方法
2017/04/19 Python
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
python匿名函数的使用方法解析
2019/10/10 Python
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
英国办公用品商店:Office Outlet
2018/04/04 全球购物
应用艺术专业个人的自我评价
2014/01/03 职场文书
大学生村官心得体会范文
2014/01/04 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
扬尘污染防治方案
2014/06/15 职场文书
人力资源职位说明书
2014/07/29 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python