如何创建块图像?

时间:2015-06-02 23:19:50

标签: image matlab image-processing computer-vision vision

我有2000个图像,每个的大小是Xi = 320 * 512 double(i = 1:1:2000)。我想将每个图像视为一个块,因此有2000个块,然后将它们放在一个大图像中。对于每个块,都有一个与之对应的标签,标签范围从1到10.我的问题是如何将2000个图像放入一个带有每个块标签的大块图像中,如上所述?

我有2000张这样的照片。谁能告诉我如何将这种图像放入块中?

1 个答案:

答案 0 :(得分:0)

我的评论不正确,reshape无法解决您的问题。但是,我确实使用reshape来创建一个示例图像数组。

% Replace these with 320, 512, and 2000.
nx = 2;
ny = 3;
nz = 4;

% nz images, each of size nx by ny
images = reshape(1: nx * ny * nz, nx, ny, nz)

% Put each image into a larger image composed of n1 * n2 blocks
n1 = 2;
n2 = 2;
image = zeros(n1 * nx, n2 * ny);

% Note, nz == n1 * n2 must be true

iz = 0;
for i1 = 1: n1
    for i2 = 1: n2
        iz = iz + 1;
        image((i1 - 1) * nx + 1: i1 * nx, (i2 - 1) * ny + 1: i2 * ny) ...
            = images(:, :, iz);
    end
end

image

这会正确创建大块图像。您可能希望更改循环的内部/外部顺序以执行列主要排序,而不是行主顺序。

与paisanco一样,我不确定你想用标签做什么。