

python初心者で深層学習の画像処理を勉強しています．

そこで，学習に用いた画像≧推論画像のサイズである必要があると思うのですが，推論画像に大きめの画像を用いたいです．

一般的には，画像を重複部分10%程度で分割→推論→10%重複で結合という流れみたいなのですが，最後の重複して結合するという方法がよく分かっておりません．分割のコードは以下の通りで,
1.jpg, 2.jpg, ...のように保存されています．

[code]

    import cv2
    path_to_img = "/~.jpg"
    img = cv2.imread(path_to_img)
    img_h, img_w, _ = img.shape
    split_width = 1024
    split_height = 1024
    
    
    def start_points(size, split_size, overlap=0):
        points = [0]
        stride = int(split_size * (1-overlap))
        counter = 1
        while True:
            pt = stride * counter
            if pt + split_size >= size:
                points.append(size - split_size)
                break
            else:
                points.append(pt)
            counter += 1
        return points
    
    
    X_points = start_points(img_w, split_width, 0.5)
    Y_points = start_points(img_h, split_height, 0.5)
    
    count = 1
    frmt = 'jpg'
    
    for i in Y_points:
        for j in X_points:
            split = img[i:i+split_height, j:j+split_width]
            cv2.imwrite('{}.{}'.format(count, frmt), split)
            count += 1
    
[/code]

一枚の大きな背景を生成して，そこに画像を貼り付けていくというイメージなのですが，200枚ほどの画像を結合する必要があり，コードを短くしたいです．

以下のコードの編集，もしくは別のやり方についてご教授いただけないでしょうか．  
どうぞよろしくお願いいたします．

[code]

    background_img = Image.new('RGB', (8000,6000), (0,0,0))
    im1 = Image.open('1.png')
    im2 = Image.open('2.png')
    ……
    
    combine_im = background_img.copy()
    combine_im.paste(im1, (100, 50))
    combine_im.paste(im2, (600, 50))
    ……
    
[/code]


CC BY-SA 4.0
2021-11-19T06:49:58.490
83715
2021-11-19T07:54:49.550
2021-11-19T07:54:49.550
49151
49151
question
python opencv pil
大量の画像結合方法について