質問編集履歴

2

解決しました。

2023/01/08 08:10

投稿

Sato_nu
Sato_nu

スコア3

test CHANGED
File without changes
test CHANGED
@@ -162,3 +162,7 @@
162
162
 
163
163
  どこか処理が間違っているでしょうか。
164
164
 
165
+ ### 解決
166
+ 255で行列を割っていたことを失念しており、255をかけて元に戻して同様にコードを回したところ、無事画像を出力することができました。
167
+
168
+

1

試しているコード及びコードの実行結果の追加

2023/01/08 06:03

投稿

Sato_nu
Sato_nu

スコア3

test CHANGED
File without changes
test CHANGED
@@ -6,3 +6,159 @@
6
6
 
7
7
  - [ ] 前提で記載したnumpy行列について3000枚の行列をpngもしくはjpgにして特定のフォルダに保存したいです。
8
8
  よろしくお願いいたします。
9
+
10
+ ### 試しているコード
11
+
12
+ print("numpyの画像データ(3000枚)")
13
+ print("img_data.shape=", img_data.shape)
14
+ print()
15
+ print("img_data=", img_data)
16
+ print()
17
+ print("numpyの画像データ(3000枚):色情報(次元)を落とした画像データ(3000枚)")
18
+ test = np.squeeze(img_data)
19
+ print("test.shape=", test.shape)
20
+ print()
21
+ print("test=", test)
22
+ print()
23
+ test1 = test[0:20,:,:]
24
+ print("numpyの画像データ(20枚)")
25
+ print("test1.shape=", test1.shape)
26
+ print()
27
+ print("test1=", test1)
28
+ print()
29
+ x_split = np.split(test1, 20)
30
+ print("numpyの画像データ(20枚)を20分割したもの(list形式)")
31
+ print("x_split=", x_split)
32
+ print()
33
+ x_split2 = np.array(x_split)
34
+ print("numpyの画像データ(20枚)を20分割したもの(ndarray形式)")
35
+ print("x_split2.shape=", x_split2.shape)
36
+ print()
37
+ print("x_split2=", x_split2)
38
+ print()
39
+
40
+
41
+ for i, x in enumerate(x_split2):
42
+ print(f'x_split2[{i}]形状: \n{x.shape}')
43
+ new_name = "画像-{0:03d}.jpg".format(i + 1)
44
+ im1 = x.astype(np.uint8)
45
+ im2 = Image.fromarray(im1[0])
46
+ im2.convert("RGB")
47
+ im2.save(new_name)
48
+
49
+
50
+ ### 試しているコードの結果(一部抜粋)
51
+ numpyの画像データ(3000枚)
52
+ img_data.shape= (3000, 1, 28, 28)
53
+ img_data= [[[[0.99207843 0.99207843 0.99207843 ... 1. 1.
54
+ 0.99207843 ]
55
+ [0.99207843 0.99207843 0.99207843 ... 0.6901961 1.
56
+ 1. ]
57
+ [0.99207843 0.99207843 0.99207843 ... 0. 0.
58
+ 1. ]
59
+ ...
60
+ [0.99207843 0.99207843 0.99207843 ... 0.99207843 0.99207843
61
+ 0.99607843]
62
+ [0.99207843 0.99207843 0.99207843 ... 0.99207843 0.99207843
63
+ 0.99207843 ]
64
+ [0.99207843 0.99207843 0.99207843 ... 0.99207843 0.99207843
65
+ 0.99207843 ]]]
66
+
67
+ numpyの画像データ(3000枚):色情報(次元)を落とした画像データ(3000枚)
68
+ test.shape= (3000, 28, 28)
69
+
70
+ test= [[[0.99607843 0.99607843 0.99607843 ... 1. 1. 0.99607843]
71
+ [0.99607843 0.99607843 0.99607843 ... 0.6901961 1. 1. ]
72
+ [0.99607843 0.99607843 0.99607843 ... 0. 0. 1. ]
73
+ ...
74
+ [0.99607843 0.99607843 0.99607843 ... 0.99607843 0.99607843 0.99607843]
75
+ [0.99607843 0.99607843 0.99607843 ... 0.99607843 0.99607843 0.99607843]
76
+ [0.99607843 0.99607843 0.99607843 ... 0.99607843 0.99607843 0.99607843]]
77
+
78
+ [[0.99607843 0.99607843 0.99607843 ... 0.99607843 0.99607843 0.99607843]
79
+ [0.99607843 0.99607843 0.99607843 ... 0.99607843 0.99607843 0.99607843]
80
+ [0.99607843 0.99607843 0.99607843 ... 0.99607843 0.99607843 0.99607843]
81
+ ...
82
+ [0.99607843 0.99607843 0.99607843 ... 0. 0. 0. ]
83
+ [0.99607843 0.99607843 0.99607843 ... 0. 0. 0.2627451 ]
84
+ [0.99607843 0.99607843 0.99607843 ... 0.9490196 1. 1. ]]
85
+
86
+ numpyの画像データ(20枚)
87
+ test1.shape= (20, 28, 28)
88
+
89
+ numpyの画像データ(20枚)を20分割したもの(list形式)
90
+ x_split= [array([[[0.99607843, 0.99607843, 0.99607843, 0.99607843, 0.99607843,
91
+ 0.99607843, 1. , 1. , 0.09803922, 0. ,
92
+ 0.972549 , 1. , 0.99607843, 0.99607843, 0.99607843,
93
+ 0.99607843, 0.99607843, 0.99607843, 0.99607843, 0.99607843,
94
+ 0.99607843, 0.99607843, 1. , 1. , 1. ,
95
+ 1. , 1. , 0.99607843],
96
+ [0.99607843, 0.99607843, 0.99607843, 0.99607843, 0.99607843,
97
+ 1. , 1. , 0.01176471, 0. , 0. ,
98
+
99
+
100
+ numpyの画像データ(20枚)を20分割したもの(ndarray形式)
101
+ x_split2.shape= (20, 1, 28, 28)
102
+
103
+ x_split2= [[[[0.99607843 0.99607843 0.99607843 ... 1. 1.
104
+ 0.99607843]
105
+ [0.99607843 0.99607843 0.99607843 ... 0.6901961 1.
106
+ 1. ]
107
+ [0.99607843 0.99607843 0.99607843 ... 0. 0.
108
+ 1. ]
109
+ ...
110
+ [0.99607843 0.99607843 0.99607843 ... 0.99607843 0.99607843
111
+ 0.99607843]
112
+ [0.99607843 0.99607843 0.99607843 ... 0.99607843 0.99607843
113
+ 0.99607843]
114
+ [0.99607843 0.99607843 0.99607843 ... 0.99607843 0.99607843
115
+ 0.99607843]]]
116
+
117
+ x_split2[0]形状:
118
+ (1, 28, 28)
119
+ x_split2[1]形状:
120
+ (1, 28, 28)
121
+ x_split2[2]形状:
122
+ (1, 28, 28)
123
+ x_split2[3]形状:
124
+ (1, 28, 28)
125
+ x_split2[4]形状:
126
+ (1, 28, 28)
127
+ x_split2[5]形状:
128
+ (1, 28, 28)
129
+ x_split2[6]形状:
130
+ (1, 28, 28)
131
+ x_split2[7]形状:
132
+ (1, 28, 28)
133
+ x_split2[8]形状:
134
+ (1, 28, 28)
135
+ x_split2[9]形状:
136
+ (1, 28, 28)
137
+ x_split2[10]形状:
138
+ (1, 28, 28)
139
+ x_split2[11]形状:
140
+ (1, 28, 28)
141
+ x_split2[12]形状:
142
+ (1, 28, 28)
143
+ x_split2[13]形状:
144
+ (1, 28, 28)
145
+ x_split2[14]形状:
146
+ (1, 28, 28)
147
+ x_split2[15]形状:
148
+ (1, 28, 28)
149
+ x_split2[16]形状:
150
+ (1, 28, 28)
151
+ x_split2[17]形状:
152
+ (1, 28, 28)
153
+ x_split2[18]形状:
154
+ (1, 28, 28)
155
+ x_split2[19]形状:
156
+ (1, 28, 28)
157
+
158
+ ### 困っていること
159
+ コードはエラーなく回り、画像も指定のフォルダに「画像-001,画像-002」のように保存されるのですが、画像の中身がすべての画像で真っ黒になってしまいます。
160
+
161
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-01-08/091c1112-7089-4ae8-ac24-cd893838f198.png)
162
+
163
+ どこか処理が間違っているでしょうか。
164
+