【初心者向け】基礎&実践プログラミング

初心者がつまづきやすいところ、最短で実力が身につく方法をお伝えします。

【Python GUI】Tkinterを使ったDICOMのコントラスト調節とBMP変換

目的

  • コード保存。中身は汚い。
  • DICOM画像を任意のコントラストに調節しBMPに保存。
  • コントラスト調節の式が怪しいかも。

コード

import cv2
import numpy as np
import glob
import os
import shutil
import os, tkinter, tkinter.filedialog, tkinter.messagebox
from tkinter import filedialog
import pydicom
#from pydicom.data import get_testdata_files

def adjusted_WL_WW():
    #delete previous folder 
    if os.path.exists("adjusted_WL_WW"):
        shutil.rmtree("adjusted_WL_WW")

    #input WL and WW
    WL = int(input("WL = "))
    WW = int(input("WW = "))
    #make image list
    img_list = glob.glob("./*")
    #make croped folder where put result in
    os.mkdir("adjusted_WL_WW")
    #proceed each image in img_list to adjest WL and WW
    for img_path in img_list:
        #import image
        ds = pydicom.dcmread(img_path)
        #get the pixel information a numpy array
        img = ds.pixel_array
        img[img < WL-WW/2] = 0
        img[(img > WL-WW/2)&(img < WL+WW/2)] = img[(img > WL-WW/2)&(img < WL+WW/2)]/(WL+WW/2)*255
        img[img > WL+WW/2] = 255
        #resize into 128*128
        img = cv2.resize(img, dsize=(128,128))
        #save
        cv2.imwrite("./adjusted_WL_WW/" + img_path[2:5] + ".bmp",img)


#select folder
root = tkinter.Tk()
root.withdraw()
iDir = os.path.abspath(os.path.dirname("__file__"))
tkinter.messagebox.showinfo('Select Folder','Select Folder')
dir = filedialog.askdirectory(initialdir = iDir)
os.chdir(dir)

#adjust WL and WW
adjusted_WL_WW()

quit()



頑張れ!喝!!の代わりにB!ブックマークを押していただけるとただただうれしいです(^^)! ↓