用于读取和写入图像数据的 Python 库;
Imageio 提供了一系列 example images,可以通过使用 ‘‘imageio:chelsea.png’’ 之类的 URI 来使用。 如果您的系统上尚不存在这些图像,则会自动下载这些图像。 因此,下面的大多数示例应该可以正常工作。
读取图片
最常用的读取图片功能
import imageio as iio
im = iio.imread('imageio:chelsea.png')
print(im.shape)
如果图片文件是gif动图(gif是由多个静态图片组成的动图)
import imageio as iio
im = iio.get_reader('cat.gif')
for frame in im:
print(frame.shape) # Each frame is a numpy matrix
如果gif存储于内存中(二进制数)
import imageio as iio
#image_bytes二进制数据
im = iio.get_reader(image_bytes, '.gif')
读取网图
Imageio可以从文件名、文件对象、zip压缩文件夹、字节流、图片链接中读取图片
import imageio as iio
import visvis as vv
im = iio.imread('http://upload.wikimedia.org/wikipedia/commons/d/de/Wikipedia_Logo_1.0.png')
vv.imshow(im)
注意: 有时候代码运行不出结果,可以尝试
imageio.imread(imageio.core.urlopen(url).read(), '.gif')
.
读取文件夹中的图片
一种常见的情况是您想要读取文件夹中的所有图像,例如 进行科学分析,或者因为这些都是您的训练示例。 假设该文件夹仅包含图像文件,您可以这样读取它
import imageio as iio
from pathlib import Path
images = list()
for file in Path("path/to/folder").iterdir():
im = iio.imread(file)
images.append(im)
迭代视频中的图片
视频也是由图片组成的,通过每秒钟播放几十帧(视频由很多张图片组成),静态的图展示出视频效果。
import imageio as iio
reader = iio.get_reader('imageio:cockatoo.mp4')
#for循环迭代
for i, im in enumerate(reader):
print('Mean of frame %i is %1.1f' % (i, im.mean()))
官方文档
更多功能请查看官方文档 https://github.com/imageio/imageio