0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonで画像のdicomタグを表示してみた

Posted at

完成イメージ

画面にdicomファイルをドラッグアンドドロップした際にdicomファイルの画像を表示し、タグを表示するようなプログラムを作りたい

プログラムを作成

powershellを経由しないとdicomファイルをウィンドウにドラッグアンドドロップできないのでps1ファイルを作成

excute_python.ps1
python .\dicomFileReader.py
dicomFileReader.py
from tkinter import *
from tkinterdnd2 import *

from matplotlib import pyplot as plt
import pydicom

def text_view(event):
    # テキストを初期化
    textarea.delete("1.0","end")
    
    try:
        # dicomファイルを読み込み
        ds = pydicom.dcmread(event.data,force=True)
        # 画像を表示するためにdicomファイルを読み込み
        cr = pydicom.read_file(event.data)

        # dicomファイルの情報をテキストウィジェットに表示
        textarea.insert("end", ds)

        # 画像を表示
        plt.imshow(cr.pixel_array, cmap = "gray")
        plt.show(block=False) # block=Falseを指定しないとドラッグ状態が解除されない
    except pydicom.errors.InvalidDicomError:
        # dicomファイルが読み込めない場合
        textarea.insert("end", "dicomファイルの情報を読み込めませんでした。")

# メインウィンドウの生成
root = TkinterDnD.Tk()
root.title('DICOMファイルリーダー')
root.geometry('800x500')
root.config(bg='#66ffff')

# フレームウィジェットの生成
frame = Frame(root)

# テキストウィジェットの生成
textarea = Text(frame, height=500, width=800, font=("", "12", "")) # フォントの大きさを調整
textarea.drop_target_register(DND_FILES)
textarea.dnd_bind('<<Drop>>', text_view)
textarea.insert("end", 'DICOMファイルをここにドラッグ&ドロップしてください。タグ情報と画像が表示されます。')

# スクロールバーの生成
scroll = Scrollbar(frame, orient=VERTICAL)
textarea.configure(yscrollcommand=scroll.set)
scroll.config(command=textarea.yview)

# ウィジェットの配置
frame.pack()
textarea.pack(side=LEFT)
scroll.pack(side=RIGHT, fill=Y)

root.mainloop()

実行イメージ

image.png

image.png

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?