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实现TCP/IP协议下的端口转发及重定向示例
Jun 14 Python
Python栈算法的实现与简单应用示例
Nov 01 Python
python enumerate函数的使用方法总结
Nov 15 Python
删除python pandas.DataFrame 的多重index实例
Jun 08 Python
python将回车作为输入内容的实例
Jun 23 Python
对tensorflow 的模型保存和调用实例讲解
Jul 28 Python
对python中的argv和argc使用详解
Dec 15 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
python多线程与多进程及其区别详解
Aug 08 Python
Selenium元素定位的30种方式(史上最全)
May 11 Python
python实现简易名片管理系统
Apr 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
用PHP生成html分页列表的代码
2007/03/18 PHP
推荐一篇入门级的Class文章
2007/03/19 PHP
php+javascript的日历控件
2009/11/19 PHP
php下载文件的代码示例
2012/06/29 PHP
PHP开发注意事项总结
2015/02/04 PHP
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
Laravel实现表单提交
2017/05/07 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
js操作iframe的一些方法介绍
2013/06/25 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
在element-ui的el-tree组件中用render函数生成el-button的实例代码
2018/11/05 Javascript
记一次vue去除#问题处理经过小结
2019/01/24 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
python中使用序列的方法
2015/08/03 Python
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
python实现简单的tcp 文件下载
2020/09/16 Python
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
农村党支部先进事迹
2014/01/14 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
行政处罚事先告知书
2015/07/01 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书