Я пытаюсь загрузить файл изображения в формате TIF и перегруппировать его в длинную полосу, но сохранить горизонтальный порядок. Когда я попытался использовать Numpy Reshape, он просто накладывает друг на друга различные строки или искажает изображение. Скажем, у меня есть такой массив
imagearray = [1,2,3,4,5,6,7,8,9,10],
[0,0,0,0,0,0,0,0,0,0],
[1,1,1,1,1,1,1,1,1,1],
[2,2,2,2,2,2,2,2,2,2]
Я хочу изменить его так, чтобы он выглядел следующим образом
[1,2],
[0,0],
[1,1],
[2,2],
[3,4],
[0,0],
[1,1],
[2,2]
и так далее. Моя проблема заключается в том, чтобы сохранить этот порядок, так как я переставляю его, не используя больше памяти, так как эти изображения объемом 3 ГБ с использованием изменения формы или перестановки - это способы, которыми я могу использовать меньше памяти. Я думаю, что это сложнее также потому, что изображение технически имеет форму (n, m, 3), которой я не совсем понимаю, как манипулировать. это то, как выглядит вывод из этого изображения , когда предполагается, что оно будет выглядеть более похоже на это
Это основыфайл, который я использую
import cv2
import matplotlib.pyplot as plt
from PIL import Image, ImageTk
Image.MAX_IMAGE_PIXELS = None
width = 4000
height = 4000
rollwidth = 1000
I = cv2.imread("image path")
print("read image")
resizedImage = cv2.resize(I,(height,width), interpolation= cv2.INTER_LANCZOS4)
print("combined done")
testimage = np.reshape(resizedImage,((np.ceil(width/rollwidth).astype(np.int64)*height),rollwidth,3), order ='C')
cv2.imwrite("save path", testimage)
print("done")
Я думаю, что это немного отличается от флага дубликата, так как при использовании предложенных шагов я все еще не могу получить нужный результат