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中用format函数格式化字符串的用法
Apr 08 Python
总结Python中逻辑运算符的使用
May 13 Python
python3 实现的人人影视网站自动签到
Jun 19 Python
Python基础学习之常见的内建函数整理
Sep 06 Python
对python使用http、https代理的实例讲解
May 07 Python
Python操作mongodb数据库进行模糊查询操作示例
Jun 09 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
Oct 15 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
Python之使用adb shell命令启动应用的方法详解
Jan 07 Python
python调用外部程序的实操步骤
Mar 04 Python
Python 实现顺序高斯消元法示例
Dec 09 Python
pytorch进行上采样的种类实例
Feb 18 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
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
PHP return语句另类用法不止是在函数中
2014/09/17 PHP
PHP的伪随机数与真随机数详解
2015/05/27 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
Laravel 的数据库迁移的方法
2017/07/31 PHP
js form action动态修改方法
2008/11/04 Javascript
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
Python备份Mysql脚本
2008/08/11 Python
Python实现简单字典树的方法
2016/04/29 Python
Django开发中的日志输出的方法
2018/07/02 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
Python logging模块原理解析及应用
2020/08/13 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
Python扫描端口的实现
2021/01/25 Python
html5与css3小应用
2013/04/03 HTML / CSS
大课间活动实施方案
2014/03/06 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
opencv检测动态物体的实现
2021/07/21 Python
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技