例如,我要将(1,1028,2052,3)的图像切成16个部分(4 * 4)。现在,我使用以下代码:
for i in range(4):
for j in range(4):
part = input_image[0:1,i*257:i*257+257,j*513:j*513+513,0:3]
input_image_split.append(part)
input_image = np.concatenate(input_image_split, axis=0)
或
input_image = np.reshape(input_image, [4, 257, 2052, 3])
input_image = np.transpose(input_image, [0, 2, 1, 3])
input_image = np.reshape(input_image, [16, 513, 257, 3])
input_image = np.transpose(input_image, [0, 2, 1, 3])
但这将花费我大约每张图像10毫秒的时间。当我在tensorflow中使用之前的方式时,也会发生这种情况。 我可以更快地分割图像或张量吗? (tf.split将花费更多时间)
答案 0 :(得分:0)
您可以尝试以下方法:
for i in range(4):
for j in range(4):
part = input_image[0][i*257:i*257+257,j*513:j*513+513,0:3]
input_image_split.append(part)
merged = np.stack(input_image_split);
您可以尝试使用TensorFlow的tf.split
和tf.stack
方法。不过,我暂时不能说这里最快的是什么。