专栏首页AI科技时讯python包:urllib——使用urllib下载无限制链接图片

python包:urllib——使用urllib下载无限制链接图片

背景

需要将无限制链接转换为本地图片进行后续处理,这里需要用到python的urllib包,该包收集了多个涉及 URL 的模块的包:

  • urllib.request 打开和读取 URL
  • urllib.error 包含 urllib.request 抛出的异常
  • urllib.parse 用于解析 URL
  • urllib.robotparser 用于解析 robots.txt 文件

这里需要用到urllib.request包进行打开和读取图片链接url

urllib.request

详细介绍可以参见:

  • https://docs.python.org/zh-cn/3/library/urllib.request.html#module-urllib.request 这里需要用到urllib.request.urlopen, 打开统一资源定位地址 url,可以是一个字符串或一个 Request 对象。

实现

#!/usr/bin/env python
# fileUsing: download img from not restrict url

import os
import cv2
import urllib.request
import numpy as np


class Url2Image(object):
    def url_to_image(self, url):
        resp = urllib.request.urlopen(url)
        image = np.array(bytearray(resp.read()), dtype="uint8")  # 转换格式
        image = cv2.imdecode(image, cv2.IMREAD_COLOR)
        # cv2.imdecode()函数从指定的内存缓存中读取数据,并把数据转换(解码)成图像格式;主要用于从网络传输数据中恢复出图像
        # save file and convert into cv2 imread
        image_name = url.split('/')[-1]
        cv2.imwrite(image_name, image)  # save img
        image = cv2.imread(image_name)
        os.remove(image_name)  # remove local img file
        return image


if __name__ == '__main__':
    u2i = Url2Image()
    url = "https://s1.ax1x.com/2020/09/23/wx6jRU.png"
    print("downloading %s" % (url))
    image = u2i.url_to_image(url)
    cv2.imshow("Image", image)
    cv2.waitKey(0)

本文分享自微信公众号 - AI科技时讯(aiblog_research),作者:海棠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python从入门到熟练(7):函数

    本节主要讲函数。函数也可以看作是一种方法,能够去实现某种想法,比如加法等操作就是一种函数,只不过在背后被封装起来了。函数是编程中一个重要的方法,

    用户3578099
  • DSSM: Learning deep structured semantic models for web search

    DSSM是Deep Structured Semantic Model的缩写,即我们通常说的基于深度网络的语义模型,其核心思想是将query和doc映射到到共同...

    用户3578099
  • DeepFaceLab坑之ffmpeg

    DeepFaceLab是一款支持视频或图片的换脸开源软件,其使用非常简单,有官方的juptyer notebook案例,这里不做过多的教程介绍。

    用户3578099
  • 使用Promise封装小程序wx.request

    现在尝试把wx.request简单的封装了一下,调用一个request方法,每次请求自动携带header头信息,这样就省事多了,包含了常见的get post p...

    九旬大爷
  • for循环的嵌套

    大当家
  • 《Spring Boot 入门及前后端分离项目实践》系列介绍

    本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 个部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot...

    我是十三
  • OpenCV-Python速查:从载入图片到人脸识别

    OpenCV是一个计算机视觉和机器学习的开源库。拥有2500+个优化算法——一套非常全面的既经典又最先进的计算机视觉和机器学习算法的集合,具备很多接口,包括Py...

    AI研习社
  • CES Aisa总结篇 | 盛况依旧,却始终缺了点新意和真实落地的感觉

    镁客网
  • 使用OpenCV和Python构建运动热图视频

    OpenCV(或称为“ 开源计算机视觉”)是英特尔于1999年开发的一个库,主要针对计算机视觉和实时视频操作,它使用C ++编写,但受不同语言(包括Python...

    代码医生工作室
  • 常见的图像处理技术

    深度学习对于图像的分析、识别以及语义理解具有重要意义。“图像分类”、“对象检测”、“实例分割”等是深度学习在图像中的常见应用。为了能够建立更好的训练数据集,我们...

    小白学视觉

扫码关注云+社区

领取腾讯云代金券