![](/img/trans.png)
[英]how can I load a single tif image in parts into numpy array without loading the whole image into memory?
[英]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.split
和tf.stack
方法進行試驗。 不過,我暫時不能說這里最快的是什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.