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基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
Flask框架信号用法实例分析
Jul 24 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
Python类装饰器实现方法详解
Dec 21 Python
在Python中调用Ping命令,批量IP的方法
Jan 26 Python
python框架flask表单实现详解
Nov 04 Python
pycharm不能运行.py文件的解决方法
Feb 12 Python
python实现与redis交互操作详解
Apr 21 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 Python
python爬虫scrapy基本使用超详细教程
Feb 20 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计算2点经纬度之间的距离代码
2013/08/12 PHP
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
原生JavaScript编写canvas版的连连看游戏
2016/05/29 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
js canvas实现红包照片效果
2018/08/21 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
python发布模块的步骤分享
2014/02/21 Python
Python实现基于权重的随机数2种方法
2015/04/28 Python
python链接Oracle数据库的方法
2015/06/28 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
python中的字符串内部换行方法
2018/07/19 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
法律专业应届本科毕业生求职信
2013/10/25 职场文书
廉洁使者实施方案
2014/03/29 职场文书
父母寄语大全
2014/04/12 职场文书
企业文化标语口号
2014/06/09 职场文书
返乡农民工证明
2015/06/24 职场文书
社区安全温馨提示语
2015/07/14 职场文书
运动会宣传稿50字
2015/07/23 职场文书
九年级语文教学反思
2016/03/03 职场文书