点击上方图片购买课程

用于读取和写入图像数据的 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



广而告之