如何将大图像(800 MB)子集化为较小的图像以创建训练集?



我有一张.png格式的800MB高分辨率图像。我想创建一个由较小图像组成的训练集,例如 15-20 张图像。我如何使用一些简单的方法在python/matlab中做到这一点?

我认为目前最好的方法是skimage.util.view_as_blocks.

import numpy as np
from skimage.util.shape import view_as_blocks
A = np.arange(4*4).reshape(4,4)
array([[ 0,  1,  2,  3],
[ 4,  5,  6,  7],
[ 8,  9, 10, 11],
[12, 13, 14, 15]])
B = view_as_blocks(A, block_shape=(2, 2))
B[0, 0]

上一行将选择第 0 行第 0 列的正方形:

array([[0, 1],
[4, 5]])