質問編集履歴

1

追記の更新

2018/09/13 03:08

投稿

physics303
physics303

スコア89

test CHANGED
File without changes
test CHANGED
@@ -111,3 +111,69 @@
111
111
  ```
112
112
 
113
113
  とすればエラーは出ませんが、2223ファイルすべてをつなげた配列を作りたいのです。
114
+
115
+
116
+
117
+ ---
118
+
119
+ **追記**
120
+
121
+
122
+
123
+ [ここ](https://bytes.com/topic/python/answers/24308-pil-do-i-need-close)を参考に次のようにプログラムを変更させるとうまく行きました。(もっとスマートに書く方法があったら教えてください)
124
+
125
+ ```python
126
+
127
+
128
+
129
+ img_sequence = []
130
+
131
+
132
+
133
+ for image in path:
134
+
135
+ fp = open(image,"rb")
136
+
137
+ img = Image.open(path)
138
+
139
+ img_sequence.append(img)
140
+
141
+ img.load()
142
+
143
+ fp.close()
144
+
145
+ ```
146
+
147
+ これで、img_sequenceの各要素には画像が入りました。実際に
148
+
149
+ ```python
150
+
151
+ img_sequence[1].show()
152
+
153
+ ```
154
+
155
+ などとするとちゃんと画像が表示されます。
156
+
157
+ ```python
158
+
159
+ print(len(img_sequence))
160
+
161
+ ```
162
+
163
+ とすると2223と表示されます。一方で、
164
+
165
+
166
+
167
+ ```python
168
+
169
+ images_original = np.asarray(images_original)
170
+
171
+ print(images_original.shape)
172
+
173
+ ```
174
+
175
+ と入力すると、
176
+
177
+ TypeError: int() argument must be a string, a bytes-like object or a number, not 'JpegImageFile'
178
+
179
+ というエラーが出るのは各画像ファイルの縦・横がバラバラだからでしょうか。