teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記の更新

2018/09/13 03:08

投稿

physics303
physics303

スコア89

title CHANGED
File without changes
body CHANGED
@@ -54,4 +54,37 @@
54
54
  img_sequence.append(img)
55
55
  i = i + 1
56
56
  ```
57
- とすればエラーは出ませんが、2223ファイルすべてをつなげた配列を作りたいのです。
57
+ とすればエラーは出ませんが、2223ファイルすべてをつなげた配列を作りたいのです。
58
+
59
+ ---
60
+ **追記**
61
+
62
+ [ここ](https://bytes.com/topic/python/answers/24308-pil-do-i-need-close)を参考に次のようにプログラムを変更させるとうまく行きました。(もっとスマートに書く方法があったら教えてください)
63
+ ```python
64
+
65
+ img_sequence = []
66
+
67
+ for image in path:
68
+ fp = open(image,"rb")
69
+ img = Image.open(path)
70
+ img_sequence.append(img)
71
+ img.load()
72
+ fp.close()
73
+ ```
74
+ これで、img_sequenceの各要素には画像が入りました。実際に
75
+ ```python
76
+ img_sequence[1].show()
77
+ ```
78
+ などとするとちゃんと画像が表示されます。
79
+ ```python
80
+ print(len(img_sequence))
81
+ ```
82
+ とすると2223と表示されます。一方で、
83
+
84
+ ```python
85
+ images_original = np.asarray(images_original)
86
+ print(images_original.shape)
87
+ ```
88
+ と入力すると、
89
+ TypeError: int() argument must be a string, a bytes-like object or a number, not 'JpegImageFile'
90
+ というエラーが出るのは各画像ファイルの縦・横がバラバラだからでしょうか。