Dicom轉png,jpg等,可處理壓縮影象
阿新 • • 發佈:2018-12-16
如下:
file傳入檔案全路徑
注意:這個處理不了壓縮圖(維度較高的,如果需要通用化的請閱覽到最後!!!!)
10.24這個引數:轉 1024*1024的圖,也可以自定義
import pydicom import matplotlib.pyplot as plt from skimage import exposure,img_as_float def dicom_2png(file): _currFile = file dcm = pydicom.dcmread(file) fileName = os.path.basename(file) imageX = dcm.pixel_array temp = imageX.copy() print("shape ----", imageX.shape) picMax = imageX.max() vmin = imageX.min() vmax = temp[temp < picMax].max() # print("vmin : ", vmin) # print("vmax : ", vmax) imageX[imageX > vmax] = 0 imageX[imageX < vmin] = 0 # result = exposure.is_low_contrast(imageX) # # print(result) image = img_as_float(imageX) plt.cla() plt.figure('adjust_gamma', figsize=(10.24, 10.24)) plt.subplots_adjust(top=1, bottom=0, left=0, right=1, hspace=0, wspace=0) plt.imshow(image, 'gray') plt.axis('off') plt.savefig(fileName + '.png') time.sleep(1)
PS:經過幾個月研究,博主已處理好壓縮的問題。
原理是先將Dicom圖壓縮去掉,轉通用圖(主要是Dcm圖顯矩陣那塊轉換)
轉換後pydcm就可以讀取 : imageX = dcm.pixel_array屬性了
不多說直接上地址,這個暫時未傳至github,直接放我的碼雲了
https://gitee.com/ocen/dcm_to_png
主處理邏輯請讀:AITBDCMService.py(被註釋掉的是win服務注入不影響使用)
依賴VC環境,請悉知,一般裝到VS 2015或以上是沒問題的