質問編集履歴

1

コードを記載しました

2020/11/11 08:17

投稿

zassota
zassota

スコア1

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,68 @@
3
3
  フォルダAとフォルダB内の画像のすべての組み合わせでなく、順番に横に連結させたいです。
4
4
 
5
5
  https://teratail.com/questions/284453
6
+
7
+ https://teratail.com/questions/283284
8
+
9
+ https://teratail.com/questions/284253
10
+
11
+
12
+
13
+ 下記コードですと、フォルダAの画像枚数×フォルダBの画像枚数のとてつもない数の新しい画像ができてしまいます。
14
+
15
+ ```python
16
+
17
+ from PIL import Image
18
+
19
+ import itertools
20
+
21
+ from pathlib import Path
22
+
23
+
24
+
25
+ def get_concat_h(im1, im2, color="black"):
26
+
27
+ dst = Image.new(
28
+
29
+ 'RGB', (im1.width + im2.width, im1.height))
30
+
31
+ dst.paste(im1, (0, 0))
32
+
33
+ dst.paste(im2, (im1.width, 0))
34
+
35
+ return dst
36
+
37
+
38
+
39
+ img_dir1 = Path("フォルダの場所/trainA") # 左側の画像があるディレクトリ
40
+
41
+ img_dir2 = Path("フォルダの場所/trainB") # 右側の画像があるディレクトリ
42
+
43
+ output_dir = Path("フォルダの場所/combined") # 出力ディレクトリ
44
+
45
+ output_dir.mkdir(exist_ok=True)
46
+
47
+
48
+
49
+ for path1, path2 in itertools.product(img_dir1.iterdir(), img_dir2.iterdir()):
50
+
51
+ print(f"concat {path1} and {path2}")
52
+
53
+ img1 = Image.open(path1)
54
+
55
+ img2 = Image.open(path2)
56
+
57
+
58
+
59
+ dst = get_concat_h(img1, img2)
60
+
61
+
62
+
63
+ save_path = output_dir / f"{path1.stem}_{path2.stem}.jpg"
64
+
65
+ dst.save(save_path)
66
+
67
+ ```
6
68
 
7
69
 
8
70