<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
raw+mhd格式是常見的一種醫學影象格式,每一個病人的資料包含一個mhd檔案和一個同名的raw檔案,mhd即meta header data,資料頭部資訊,而raw儲存了畫素資訊。方法需要使用的SimpleITK庫,我們需要在自己的Python環境中安裝對應的庫
pip install SimpleITK
mhd+raw的資料往往是三維體資料,我們可以從mhd檔案中讀取資料的具體資訊如影象大小、切片大小、畫素大小等資訊。使用sitk.ReadImage() 即可讀取影象,使用sitk.GetArrayFromImage() 可獲取影象矩陣。
具體程式碼如下:
import os import SimpleITK as sitk import matplotlib.pyplot as plt from natsort import natsorted from tqdm import tqdm import cv2 import numpy as np mhd_path = './xxx.mhd' # mhd檔案需和同名raw檔案放在同一個資料夾 data = sitk.ReadImage(mhd_path) # 讀取mhd檔案 # print(data) spacing = data.GetSpacing() # 獲得spacing大小 img_data = sitk.GetArrayFromImage(data) # 獲得影象矩陣 print(img_data.shape) # 影象資料轉換為npy儲存 np.save('img_data.npy', np.array(img_data)) # 將影象轉為png格式儲存 for i in range(img_data.shape[0]): cv2.imwrite('./{}.png'.format(i), img_data[i, :, :])
DICOM(Digital Imaging and Communications in Medicine) 即醫學數位成像和通訊,是醫學影象和相關資訊的國際標準(ISO 12052)。DICOM被廣泛應用於放射醫療,心血管成像以及放射診療診斷裝置(X射線,CT,核磁共振,超聲等),並且在眼科和牙科等其它醫學領域得到越來越深入廣泛的應用。所有患者的醫學影象都以 DICOM 檔案格式進行儲存。使用Python讀取dicom影象可以使用pydicom庫和SimpleITK庫來完成。由於在醫學影象處理領域中,對不同的影象需要使用不同的窗寬窗位匯出影象,在下面程式碼中,我增加了對應的程式碼。
pip install SimpleITK pip install pydicom
使用pydicom方法具體程式碼如下:
import os import SimpleITK as sitk import matplotlib.pyplot as plt from natsort import natsorted from tqdm import tqdm import cv2 import pydicom import numpy as np #調整影象窗寬窗位 def window_transform(ct_array, window_width, window_center, normal=False): min_window = float(window_center) - 0.5*float(window_width) new_img = (ct_array - min_window) / float(window_width) new_img[new_img < 0] = 0 new_img[new_img > 1] = 1 if not normal: new_img = (new_img * 255).astype('uint8') return new_img img_path = 'xx.dcm' #此時讀取的是所有dicom影象資訊 image = pydicom.read_file(img_path) #獲得影象矩陣 image_data = image.pixel_array #獲得dicom中的患者資訊、影象資訊等 information['PatientID'] = image.PatientID information['PatientName'] = image.PatientName information['PatientBirthDate'] = image.PatientBirthDate information['PatientSex'] = image.PatientSex window_width = 1000 window_center = 30 image_data = window_transform(image_data, window_width, window_center, normal=False) cv2.imwrite('./img.png',image_data)
使用SimpleITK方法具體程式碼如下:
import os import SimpleITK as sitk import matplotlib.pyplot as plt from natsort import natsorted from tqdm import tqdm import cv2 import pydicom import numpy as np img_path = 'xx.dcm' #此時讀取的是所有dicom影象資訊 image = sitk.ReadImage(img_path) # 轉為值為0-255的灰度圖 rescalFilt = sitk.RescaleIntensityImageFilter() rescalFilt.SetOutputMaximum(255) rescalFilt.SetOutputMinimum(0) image = rescalFilt.Execute(image) image_data = sitk.GetArrayFromImage(image_data) image_data = np.squeeze(dicom_data) cv2.imwrite('./img.png',image_data)
醫學影像早期使用的是DICOM標準,基本上各家廠商都會使用符合DICOM標準的產品,但是這個標準對於資料分析並不方便。在神經影像興起時就誕生了各種各樣的資料儲存標準,比如analyze。後為了便於學術交流,NIH拉著其他一些組織的專家成立了工作組,制定了新的神經影像的資料儲存標準,稱為NIFTI。 讀取nii字尾的NIFTI格式影象需要安裝nibabel庫
pip install nibabel
使用nib.load() 函數即可讀取影象資料data, 其中dataobj就是影象矩陣
import os import numpy as np import nibabel as nib import matplotlib.pyplot as plt from glob import glob img_path = './xxx.nii' image = nib.load(img_path) image_data = image.dataobj for i in range(0, dataobj.shape[2]): cv2.imwrite('./{}.png'.format(i), img_data[i, :, :])
到此這篇關於使用Python解決常見格式影象讀取nii,dicom,mhd的文章就介紹到這了,更多相關Python影象讀取內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45