点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”
总第 131 篇文章,本文大约 1300 字,阅读大约需要 3 分钟
前言
有时候我们需要读取的图片是网络上的图片,应该怎么操作呢?
这里也是介绍两个常用库的做法,即 opencv
和 PIL
。
这里要读取的网络图片,来自上一篇文章:每日一学:如何用matplotlib展示图片:
链接为:https://i-blog.csdnimg.cn/blog_migrate/b68b2edc4552d14226d14fa6dc50426f.png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1
![](https://i-blog.csdnimg.cn/blog_migrate/b68b2edc4552d14226d14fa6dc50426f.png)
PIL 读取网络图片
代码如下所示:
# 基于 PIL
import requests
from PIL import Image
from io import BytesIO
%matplotlib inline
import matplotlib.pyplot as plt
img_url = 'https://i-blog.csdnimg.cn/blog_migrate/b68b2edc4552d14226d14fa6dc50426f.png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1'
try:
encoded_img = requests.get(img_url).content
ori_img = Image.open(BytesIO(encoded_img))
plt.imshow(ori_img)
except Exception as e:
print(f'download image {img_url} error: {e}')
结果如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/546d2d077f744d2e07ed22f52afe0dac.png)
Opencv 读取网络图片
代码如下所示:
# opencv
import numpy as np
import cv2
import requests
%matplotlib inline
import matplotlib.pyplot as plt
try:
img_url = 'https://i-blog.csdnimg.cn/blog_migrate/b68b2edc4552d14226d14fa6dc50426f.png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1'
img_data = requests.get(img_url).content
img = np.asarray(bytearray(img_data), dtype="uint8")
img = cv2.imdecode(img, -1)
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
except Exception as e:
print(f'download image {img_url} error: {e}')
结果如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/5e1effa33d332d6506aeb4e6c837b6e0.png)
精选AI文章
1. 10个实用的机器学习建议
5. 实战|手把手教你训练一个基于Keras的多标签图像分类器
精选python文章
1. python数据模型
4. Jupyter 进阶教程
精选教程资源文章
1. [资源分享] TensorFlow 官方中文版教程来了
2. [资源]推荐一些Python书籍和教程,入门和进阶的都有!
3. [Github项目推荐] 推荐三个助你更好利用Github的工具
5. GitHub上有哪些比较好的计算机视觉/机器视觉的项目?
欢迎关注我的微信公众号--算法猿的成长,或者扫描下方的二维码,大家一起交流,学习和进步!
![](https://i-blog.csdnimg.cn/blog_migrate/96d9f0a32ab4e919d49cafb50ddcbba1.png)
如果觉得不错,在看、转发就是对小编的一个支持!