在重叠和非重叠过程中从三维图像中提取三维面片并恢复图像b

2024-04-16 11:41:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理172x20x156形状的三维图像。为了将图像输入到网络中进行输出,我需要从图像中提取32x32x32大小的补丁,然后将这些补丁重新添加回来以再次获得图像。 因为我的图像尺寸不是面片大小的倍数,所以我必须得到重叠的补丁。 我想知道怎么做。在

我在Pythorch工作,有一些选项像unfold和{},但我不确定它们是如何工作的。在


Tags: 图像网络尺寸选项形状pythorch倍数unfold
1条回答
网友
1楼 · 发布于 2024-04-16 11:41:48

你所有的数据都是172x220x156?如果是这样的话,似乎可以使用for循环并索引到张量中来获得32x32x32块,对吗?(可能是硬编码了一些东西)。在

然而,我不能完全回答这个问题,因为你不清楚你想如何结合这些结果。说清楚,这是你的目标吗?在

1)从图像中获取32x32x32补丁 2) 对它进行任意处理 3) 将该补丁保存到正确索引的某个result 4) 重复

如果是这样,你打算如何组合重叠的补丁?加起来?平均值?在

但是,索引:

out_tensor = torch.zeros_like(input)
for i_idx in [0, 32, 64, 96, 128, 140]:
    for j_idx in [0, 32, 64, 96, 128, 160, 188]:
        for k_idx in [0, 32, 64, 96, 124]:
            input = tensor[i_idx, j_idx, k_idx]
            output = your_model(input)
            out_tensor[i_idx, j_idx, k_idx] = output

这根本不是优化的,但我想大部分的计算将是实际的神经网络,而且没有办法绕过它,所以优化可能是没有意义的。在

相关问题 更多 >