這篇文章主要為大家詳細介紹了怎么在python中將dicom圖片轉換成jpg圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,發現的小伙伴們可以參考一下:
Python是一種編程語言,內置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領域中都有廣泛的應用,例如最熱門的大數據分析,人工智能,Web開發等。
主要原理:調整dicom的窗寬,使之各個像素點上的灰度值縮放至[0,255]范圍內。
使用到的python庫:SimpleITK
下面是一個將dicom(.dcm)圖片轉換成jpg圖片的demo:
import SimpleITK as sitk
import numpy as np
import cv2
def convert_from_dicom_to_jpg(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, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
if __name__ == '__main__':
# 下面是將對應的dicom格式的圖片轉成jpg
dcm_image_path = '/DICOM_image/lung001.dcm' #讀取dicom文件
output_jpg_path = 'JPG_image/lung001.jpg'
ds_array = sitk.ReadImage(dcm_image_path) #讀取dicom文件的相關信息
img_array = sitk.GetArrayFromImage(ds_array) #獲取array
# SimpleITK讀取的圖像數據的坐標順序為zyx,即從多少張切片到單張切片的寬和高,此處我們讀取單張,因此img_array的shape
#類似于 (1,height,width)的形式
shape = img_array.shape
img_array = np.reshape(img_array, (shape[1], shape[2])) #獲取array中的height和width
high = np.max(img_array)
low = np.min(img_array)
convert_from_dicom_to_jpg(img_array, low, high, output_jpg_path) #調用函數,轉換成jpg文件并保存到對應的路徑
print('FINISHED')以上就是億速云小編為大家收集整理的怎么在python中將dicom圖片轉換成jpg圖片,如何覺得億速云網站的內容還不錯,歡迎將億速云網站推薦給身邊好友。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。