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中的Django框架中进行字符串翻译
Jul 27 Python
利用Python获取操作系统信息实例
Sep 02 Python
python导入时小括号大作用
Jan 10 Python
Python实现将doc转化pdf格式文档的方法
Jan 19 Python
替换python字典中的key值方法
Jul 06 Python
使用tensorflow实现线性回归
Sep 08 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
python安装本地whl的实例步骤
Oct 12 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
Apr 08 Python
Python如何急速下载第三方库详解
Nov 02 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新手上路(八)
2006/10/09 PHP
PHP 5.0对象模型深度探索之对象复制
2008/03/27 PHP
php 设计模式之 单例模式
2008/12/19 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
php输出图像的方法实例分析
2017/02/16 PHP
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
vue 中几种传值方法(3种)
2019/11/12 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
Python的Django框架使用入门指引
2015/04/15 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
德国机车企业:FC-Moto
2017/10/27 全球购物
本科生学习总结的自我评价
2013/10/02 职场文书
施工人员岗位职责
2013/12/12 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
班长演讲稿范文
2014/04/24 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
运动会5000米加油稿
2015/07/21 职场文书
python调试工具Birdseye的使用教程
2021/05/25 Python
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL