質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2936閲覧

Numpy配列からGIFを生成したい

Takayou

総合スコア15

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/05/25 13:02

Numpy配列からGIFを生成したい

CT画像からGIFを生成したいのですが, エラーが生じてしまいます.

手順

  1. PydicomでCT画像をNumpy配列に変換
  2. Numpy配列をImageオブジェクトに変換
  3. Imageオブジェクト.saveを用いてGIFを生成

2まではうまく行っていることが確認できているのですが, 3でエラーが生じてしまいます.

以下, 2と3についてのコードです.

Python

1dicom_list = [] 2shape=(512, 512, 1) 3for i in range(dicom_images.shape[0]): 4 # Numpy配列をImageオブジェクトに変換してリストに追加 5 dicom_list.append(Image.fromarray(np.uint8(dicom_images[i]))) 6print(len(dicom_list)) #169 7 8print(type(dicom_list[0])) #<class 'PIL.Image.Image'> 9print(dicom_list[0].size) #(512, 512) 10print(dicom_list[0].format) #None 11print(dicom_list[0].mode) #L 12 13 14dicom_list[0].save(os.path.join(file_path, "a.png")) # 成功 15# 下記コードでエラー発生 16dicom_list[0].save(os.path.join(file_path, "dicom.gif"), 17 save_all=True, append_images=dicom_list[1:], 18 optimize=False, 19 duration=40, 20 loop=3)

エラー内容は以下です.

AttributeError: 'NoneType' object has no attribute 'palette'

pngファイルへの変換は可能であることを確認済みです.

NoneタイプはGifに変換できないと言うことなのでしょうか...?
このようなケースでGifへの変換を行っている, もしくはできないので諦めなさいという資料が見つけられなかったので質問させていただきました.

GIF作成に関しては, 以下を参考にしました.
Python, PillowでアニメーションGIFを作成、保存

よろしくお願いします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

Paletteモードを'L'から'P'に変換する必要があるみたいです.

Python

1# dicom_list.append(Image.fromarray(np.uint8(dicom_images[i]))) 2dicom_list.append(Image.fromarray(np.uint8(dicom_images[i]).convert('P'))

参考

投稿2020/05/25 13:50

Takayou

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問