回答編集履歴
2
d
test
CHANGED
@@ -98,14 +98,24 @@
|
|
98
98
|
|
99
99
|
```python
|
100
100
|
|
101
|
+
def concat(imgs):
|
102
|
+
|
103
|
+
return np.vstack([np.hstack(h) for h in imgs])
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
# all_imgs は (22500, 66, 66, 3) という形状であることが前提
|
108
|
+
|
109
|
+
# 形状を (22500, 66, 66, 3) から (-1, 1, 15, 66, 66 ,3) に変更する。
|
110
|
+
|
101
111
|
all_imgs = all_imgs.reshape((-1, 1, 15, 66, 66 ,3))
|
102
112
|
|
103
|
-
for imgs in all_imgs:
|
113
|
+
for i, imgs in enumerate(all_imgs):
|
104
114
|
|
105
115
|
# imgs は (1, 15, 66, 66 ,3) という形状
|
106
116
|
|
107
117
|
merged = concat(imgs)
|
108
118
|
|
109
|
-
cv2.imwrite('
|
119
|
+
cv2.imwrite('{}.png'.format(i), merged)
|
110
120
|
|
111
121
|
```
|
1
d
test
CHANGED
@@ -79,3 +79,33 @@
|
|
79
79
|
|
80
80
|
|
81
81
|
[OpenCV - 画像をグリッド上に分割する方法について](http://pynote.hatenablog.com/entry/opencv-split-image)
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
# 追記
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
22500 枚の画像をすべて読みこんで、1つの配列としたら、
|
90
|
+
|
91
|
+
all_imgs = (22500, 66, 66, 3) という配列になると思います。
|
92
|
+
|
93
|
+
これを (1500, 15, 1, 66, 66, 3) という配列に reshape します。
|
94
|
+
|
95
|
+
あとは for で回して、結合→保存を繰り返せばよいです。
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
```python
|
100
|
+
|
101
|
+
all_imgs = all_imgs.reshape((-1, 1, 15, 66, 66 ,3))
|
102
|
+
|
103
|
+
for imgs in all_imgs:
|
104
|
+
|
105
|
+
# imgs は (1, 15, 66, 66 ,3) という形状
|
106
|
+
|
107
|
+
merged = concat(imgs)
|
108
|
+
|
109
|
+
cv2.imwrite('ファイル名', merged)
|
110
|
+
|
111
|
+
```
|