簡體   English   中英

如何使用numpy或tensorflow更快地在N個部分中相等地繪制圖像?

[英]How can I devide an image equally in N parts faster with numpy or tensorflow?

例如,我想將(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將花費更多時間)

您可以嘗試以下方法:

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.splittf.stack方法進行試驗。 不過,我暫時不能說這里最快的是什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM