回答編集履歴
2
d
answer
CHANGED
@@ -48,9 +48,14 @@
|
|
48
48
|
あとは for で回して、結合→保存を繰り返せばよいです。
|
49
49
|
|
50
50
|
```python
|
51
|
+
def concat(imgs):
|
52
|
+
return np.vstack([np.hstack(h) for h in imgs])
|
53
|
+
|
54
|
+
# all_imgs は (22500, 66, 66, 3) という形状であることが前提
|
55
|
+
# 形状を (22500, 66, 66, 3) から (-1, 1, 15, 66, 66 ,3) に変更する。
|
51
56
|
all_imgs = all_imgs.reshape((-1, 1, 15, 66, 66 ,3))
|
52
|
-
for imgs in all_imgs:
|
57
|
+
for i, imgs in enumerate(all_imgs):
|
53
58
|
# imgs は (1, 15, 66, 66 ,3) という形状
|
54
59
|
merged = concat(imgs)
|
55
|
-
cv2.imwrite('
|
60
|
+
cv2.imwrite('{}.png'.format(i), merged)
|
56
61
|
```
|
1
d
answer
CHANGED
@@ -38,4 +38,19 @@
|
|
38
38
|
cv2.imwrite('merged.png', merged)
|
39
39
|
```
|
40
40
|
|
41
|
-
[OpenCV - 画像をグリッド上に分割する方法について](http://pynote.hatenablog.com/entry/opencv-split-image)
|
41
|
+
[OpenCV - 画像をグリッド上に分割する方法について](http://pynote.hatenablog.com/entry/opencv-split-image)
|
42
|
+
|
43
|
+
# 追記
|
44
|
+
|
45
|
+
22500 枚の画像をすべて読みこんで、1つの配列としたら、
|
46
|
+
all_imgs = (22500, 66, 66, 3) という配列になると思います。
|
47
|
+
これを (1500, 15, 1, 66, 66, 3) という配列に reshape します。
|
48
|
+
あとは for で回して、結合→保存を繰り返せばよいです。
|
49
|
+
|
50
|
+
```python
|
51
|
+
all_imgs = all_imgs.reshape((-1, 1, 15, 66, 66 ,3))
|
52
|
+
for imgs in all_imgs:
|
53
|
+
# imgs は (1, 15, 66, 66 ,3) という形状
|
54
|
+
merged = concat(imgs)
|
55
|
+
cv2.imwrite('ファイル名', merged)
|
56
|
+
```
|