import pydicom
import matplotlib.pyplot as plt
import scipy.misc
import pandas as pd
import numpy as np
import os
import tensorflow as tf
def Dcm2jpg(file_path):
#获取所有图片名称
c = []
names = os.listdir(file_path) #路径
#将文件夹中的文件名称与后边的 .dcm分开
for name in names:
index = name.rfind('.')
name = name[:index]
c.append(name)
for files in c :
picture_path = "./Dicomdataset/4.000000-Ax T2 brain-74802/"+files+".dcm"
out_path = "./jpgdata/"+files+".jpg"
# ds = pydicom.read_file(picture_path)
# img = ds.pixel_array # 提取图像信息
# 读取dicom文件
dcm = pydicom.read_file(picture_path)
img = dcm.pixel_array # 提取图像信息
# 获取图像唯一标识符UID
uid = dcm.SOPInstanceUID
# 获取像素矩阵
img_arr = dcm.pixel_array
# 打印矩阵大小
print(img_arr.shape)
# 获取像素点个数
lens = img_arr.shape[0]*img_arr.shape[1]
# 获取像素点的最大值和最小值
arr_temp = np.reshape(img_arr,(lens,))
max_val = max(arr_temp)
min_val = min(arr_temp)
# 图像归一化
img_arr = (img_arr-min_val)/(max_val-min_val)
# 绘制图像并保存
plt.figure(figsize=(12,12),dpi=250) # 图像大小可以根据文件不同进行设置
plt.imshow(img_arr,cmap=plt.cm.bone)
plt.title("UID:{}".format(uid))
scipy.misc.imsave(out_path,img)
print('all is changed')
Dcm2jpg('./Dicomdataset/4.000000-Ax T2 brain-74802/')
批量DICOM转jpg格式
最新推荐文章于 2024-05-06 00:08:33 发布