python读取dicom格式的图像并转为png格式
使用网上的大多数格式转换过来图像失真过于严重,出现了这种情况:而原始图像是:读取的过程中直接变成了二值图,所以就先对读取到的原始像素矩阵做归一化,在*255变为灰度图,代码如下:import SimpleITK as sitKimport numpy as npimport cv2import osdef convert_from_dicom_to_png(img,low_window,high_
·
使用网上的大多数格式转换过来图像失真过于严重,出现了这种情况:
而原始图像是:
读取的过程中直接变成了二值图,所以就先对读取到的原始像素矩阵做归一化,在*255变为灰度图,代码如下:
import SimpleITK as sitK
import numpy as np
import cv2
import os
def convert_from_dicom_to_png(img,low_window,high_window,save_path):
lungwin = np.array([low_window*1.,high_window * 1.])
newimg = (img-lungwin[0])/(lungwin[1]-lungwin[0]) #归一化
newimg = (newimg*255).astype('uint8') #扩展像素值到【0,255】
cv2.imwrite(save_path,newimg)
读取dicom需要用到sitk,安装命令:
pip install SimpleITK
读取dicom图像:
ds_array = sitK.ReadImage(dcm_image_path)
img_array = sitK.GetArrayFromImage(ds_array)
shape = img_array.shape
img_array = np.reshape(img_array,(shape[1],shape[2]))
high = np.max(img_array)
low = np.min(img_array)
convert_from_dicom_to_png(img_array,low,high,output_png_file)
最后的得到的png图像与原图看起来没什么区别。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献3条内容
所有评论(0)