質問編集履歴
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
|
|