如何创建块图像?

Posted

技术标签:

【中文标题】如何创建块图像?【英文标题】:How to create block image? 【发布时间】:2015-08-16 23:03:22 【问题描述】:

我有 2000 张图片,每张的大小是 Xi=320*512 double (i=1:1:2000)。我想把每个图像看成一个块,所以有2000个块,然后把它们放在一个大图像中。每个块都有一个对应的标签,标签范围从1到10。我的问题是如何将2000张图像放入一个大块图像中,每个块都有一个标签,如上所述?

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

【问题讨论】:

尝试使用reshape @JeffIrwin,请给我一个例子 我有点不清楚将1到10的标签与2000个块匹配,你想在这里做什么? @paisanco,我想用稀疏编码做图像分类 我没有看到任何标签(您的意思是文件名吗?)您提供的图像是输入图像集的示例,还是单个输入图像或您想要的输出?我的猜测是它是单个标签的集合,并且您希望从中获得 3D 体素矩阵(如 MRI 图像),因此 1. 如果尚未对齐,则需要找到连接位置并逐个加载矩阵切片......或使用一些 3D 体素文件格式。请指定更近一点... 【参考方案1】:

我的评论不正确,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 一样,我不确定你想用标签做什么。

【讨论】:

以上是关于如何创建块图像?的主要内容,如果未能解决你的问题,请参考以下文章

使用一小块图像创建自定义图像

如何从图像滑块获取图像的ID

使用 React 映射图像数组时如何创建图像背景渐变

使用 CSS 创建目录(图像和文本块,对齐)

在图像和文本块上重新创建Adobe Portfolio双悬停效果

如何正确弃用 Gutenberg 块