不论是用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()函数来读取网页图片,而不需要其他的辅助,也不需要迂回。


公众号CVPy,分享OpenCV和Python的实战内容。每一篇都会放出完整的代码。欢迎关注。

如何通过URL打开图片(Python)相关推荐

  1. Python 通过URL打开图片的几种方式

    Python 通过URL打开图片实例详解 不论是用OpenCV还是PIL,skimage等库,在之前做图像处理的时候,几乎都是读取本地的图片.最近尝试爬虫爬取图片,在保存之前,我希望能先快速浏览一遍图 ...

  2. Python 通过URL打开图片

    img_src = 'https://i.ytimg.com/vi/Cn6Tw5Ilwo0/maxresdefault.jpg' 1. OpenCV # OpenCV的imread()只能加载本地的图 ...

  3. 通过url打开图片为PIL或numpy

    目录 前言 正文 (1)将图片url读取为PIL (2)将图片url读取为ndarray 前言 之前做CV的时候总结的. 正文 (1)将图片url读取为PIL import requests from ...

  4. python 从网络URL读取图片并直接处理的代码

    如下代码段是关于python 从网络URL读取图片并直接处理的代码. import urllib2 import Image import cStringIO def ImageScale(url,s ...

  5. Python常用小技巧(二)——打开图片

    Python常用小技巧(二)--打开图片 前言:对于大量图片的文件夹,你很难手工去检查每张图片是否损坏,这时候就要用程序去检查每张图片是否能打开了 一.材料准备 - os - PIL 二.程序编写 i ...

  6. 【python】根据pixiv网站的图片url下载图片到本地

    写在前面 pixiv是著名的插画网站.如果我们通过爬虫技术得到了pixiv网站图片的url,那么如何根据url下载图片到本地. 安装模块 pip install requests 测试样例 打开以下页 ...

  7. 使用Python调用opencv学习(-)打开图片,显示图片

    使用Python调用opencv学习(-)打开图片,显示图片 第一步是读取图片是用cv2.imread 第一个参数是图片的路径可以是绝对路径也可以是相对路径.第二个参数代表读取图片的格式 cv2.IM ...

  8. python怎么打开图片_新手教学——python怎么打开图片

    新手教学--python怎么打开图片 发布时间:2020-05-11 17:39:05 来源:亿速云 阅读:248 这篇文章主要介绍了python打开图片的方法,具有一定借鉴价值,需要的朋友可以参考下 ...

  9. python opencv显示图片动态_opencv-python计算机视觉图像处理学习笔记2——打开图片,保存图片,显示图片...

    用到的函数:imread(读取).imwrite(保存)和imshow(显示) 1.打开VS code,如图 2.左上角新建文件,出现Untitled-1,输入代码: import cv2       ...

最新文章

  1. 1091 Acute Stroke 需再做
  2. 专访云知声黄伟:场景定义芯片,未来所有场景都需要AI | AI名人堂
  3. Internet History, Technology, and Security----第一周
  4. elastic ik分词搜索_php环境下使用elasticSearch+ik分词器进行全文搜索
  5. 分离Exchange的OWA和Microsoft-Server-Activesync手机访问
  6. Pytorch install
  7. MRP清单的动态和静态ABAP的取法
  8. 国内 GitHub 造假黑色产业链曝光;开源开发者撤销对 ICE 禁用的决定
  9. Zookeeper Tutorial 1 -- Overview
  10. python list tuple 消耗_Python list 和 tuple 使用小记
  11. 27.go list
  12. spring AOP概念及xml配置
  13. (2018-2019)linux常用操作命令总结
  14. 8个免费、可商用的视频素材网站,一定要收藏
  15. python—leetcode-459. 重复的子字符串
  16. Monty Hall Problem (三门问题)
  17. HDU 5547 数独(DFS变形+4*4数独)
  18. 【鲲鹏HCIA考试】随堂习题卷二
  19. 如何使用python下载网站上的视频
  20. mysql连接字符串配置_配置数据库连接字符串ConnectionString

热门文章

  1. 08.音频系统:第003课_Linux音频驱动程序:第002节_ASoC音频驱动框架
  2. 0ra-12170 tns 连接超时
  3. 电脑上的文件如何备份到服务器,教您电脑文件备份怎么弄
  4. 写作小技能:开篇制胜的首段:写序言的故事模板(SCQA: Situation情境, Conflict冲突, Question问题, Answer回答。)
  5. 核心单词Word List 8
  6. 统计英文字数c语言,c语言题目,纯英文字数统计,怎么错了?
  7. ThinkPad各型号Win7系统恢复光盘镜像下载【官方下载】绝对原版
  8. 离散题目13(判断自反关系)
  9. TAGE-SC-L预测器 “TAGE-SC-L Branch Predictors”(2016)
  10. Qt编写视频监控管理平台(支持海康/大华/宇视/华为/天地伟业/H264/H265等)