次のようなコードですか?私はそれが問題であり、ファイル名と井戸/サイトのインデックス間の変換ではなく、ステッチングであると仮定しています。 for`ループ `内部の配列を連結
import numpy as np
import matplotlib.pyplot as plt
img_xsize, img_ysize = 20, 20 # size of single image
mx, my = 10, 10 # x/y grid of sites per well
nx, ny = 12, 8 # x/y grid of wells per plate
wgap = 20 # pixels gap between wells
stitched_x, stitched_y = (wgap+mx*img_xsize)*nx, (wgap+my*img_ysize)*ny
img_stitched = np.zeros((stitched_y, stitched_x), dtype=np.uint8)
def add_img(mxi, myi, nxi, nyi, img):
assert img.shape == (img_ysize, img_xsize)
xi = nxi*(mx*img_xsize + wgap) + mxi*img_xsize
yi = nyi*(my*img_ysize + wgap) + myi*img_ysize
img_stitched[yi:yi+img_ysize,xi:xi+img_xsize] = img
for nxi in range(nx):
for nyi in range(ny):
for mxi in range(mx):
for myi in range(my):
# ... get image data
img = np.random.randint(0,255) * np.ones((img_ysize, img_xsize), dtype=np.uint8)
add_img(mxi, myi, nxi, nyi, img)
plt.imshow(img_stitched)
plt.colorbar()
plt.show(block=False)
raw_input("Enter")
それは呼び出しごとにデータのコピーを強制するため、非常に非効率的です。サブリストを 'list'の中に蓄積し、それらを' for'ループの外側に連結する方が良いでしょう。または、大きな配列に最終イメージと同じサイズを初期化し、スライスインデックスを使ってサブ配列を書きます。 –