我就废话不多说了,大家还是直接看代码吧~
# encoding=utf8 ''' 查看和显示nii文件 ''' import matplotlib matplotlib.use('TkAgg') from matplotlib import pylab as plt import nibabel as nib from nibabel import nifti1 from nibabel.viewers import OrthoSlicer3D example_filename = '../ADNI_nii/ADNI_002_S_0413_MR_MPR____N3__Scaled_2_Br_20081001114937668_S14782_I118675.nii' img = nib.load(example_filename) print (img) print (img.header['db_name']) #输出头信息 width,height,queue=img.dataobj.shape OrthoSlicer3D(img.dataobj).show() num = 1 for i in range(0,queue,10): img_arr = img.dataobj[:,:,i] plt.subplot(5,4,num) plt.imshow(img_arr,cmap='gray') num +=1 plt.show()
3D显示结果:
ADNI数据维度(256,256,170)分段显示:
补充知识:python nii图像扩充
我就废话不多说了,大家还是直接看代码吧~
import os import nibabel as nib import numpy as np import math src_us_folder = 'F:/src/ori' src_seg_folder = 'G:/src/seg' aug_us_folder = 'G:/aug/ori' aug_seg_folder = 'G:/aug/seg' img_n= 10 rotate_theta = np.array([0, math.pi/2]) # augmentation aug_cnt = 0 for k in range(img_n): src_us_file = os.path.join(src_us_folder, (str(k) + '.nii')) src_seg_file = os.path.join(src_seg_folder, (str(k) + '_seg.nii')) # load .nii files src_us_vol = nib.load(src_us_file) src_seg_vol = nib.load(src_seg_file) # volume data us_vol_data = src_us_vol.get_data() us_vol_data = (np.array(us_vol_data)).astype('uint8') seg_vol_data = src_seg_vol.get_data() seg_vol_data = (np.array(seg_vol_data)).astype('uint8') # get refer affine matrix ref_affine = src_us_vol.affine ############### flip volume ############### flip_us_vol = np.fliplr(us_vol_data) flip_seg_vol = np.fliplr(seg_vol_data) # construct new volumes new_us_vol = nib.Nifti1Image(flip_us_vol, ref_affine) new_seg_vol = nib.Nifti1Image(flip_seg_vol, ref_affine) # save aug_us_file = os.path.join(aug_us_folder, (str(aug_cnt) + '.nii')) aug_seg_file = os.path.join(aug_seg_folder, (str(aug_cnt) + '_seg.nii')) nib.save(new_us_vol, aug_us_file) nib.save(new_seg_vol, aug_seg_file) aug_cnt = aug_cnt + 1 ############### rotate volume ############### for t in range(len(rotate_theta)): print 'rotating %d theta of %d volume...' % (t, k) cos_gamma = np.cos(t) sin_gamma = np.sin(t) rot_affine = np.array([[1, 0, 0, 0], [0, cos_gamma, -sin_gamma, 0], [0, sin_gamma, cos_gamma, 0], [0, 0, 0, 1]]) new_affine = rot_affine.dot(ref_affine) # construct new volumes new_us_vol = nib.Nifti1Image(us_vol_data, new_affine) new_seg_vol = nib.Nifti1Image(seg_vol_data, new_affine) # save aug_us_file = os.path.join(aug_us_folder, (str(aug_cnt) + '.nii')) aug_seg_file = os.path.join(aug_seg_folder, (str(aug_cnt) + '_seg.nii')) nib.save(new_us_vol, aug_us_file) nib.save(new_seg_vol, aug_seg_file) aug_cnt = aug_cnt + 1
以上这篇python 读取.nii格式图像实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月19日
2024年11月19日
- 群星.2022-福茂巨星·时空之轮日本唱片志系列DISC2范晓萱-RAIN【福茂】【WAV+CUE】
- 王闻-《男人四十4》[正版CD低速原抓WAV+CUE]
- 青燕子-八只眼演唱组《爱心》[WAV+CUE]
- 祁露想着你的好》WAV+CUE
- 陈致逸《赴梦之约 游戏主题原声音乐》[FLAC/分轨][159.96MB]
- 贵族音乐《睡眠自然流水声 ASMR白噪音背景音》[320K/MP3][155.72MB]
- 贵族音乐《睡眠自然流水声 ASMR白噪音背景音》[FLAC/分轨][857.58MB]
- 朱昕嵘《琴意绵绵6N纯银SQCD》[WAV+CUE]
- 降央卓玛《草原情6N纯银SQCD》WAV+CUE
- 傲日格乐《黑马琴HQCD》[WAV+CUE]
- 群星.2022-福茂巨星·时空之轮日本唱片志系列DISC3范晓萱-自言自语【福茂】【WAV+CUE】
- 群星.2022-福茂巨星·时空之轮日本唱片志系列DISC4那英-白天不懂夜的黑【福茂】【WAV+CUE】
- 群星.2015-华丽上班族电影原声大碟【大右音乐】【WAV+CUE】
- 陈粒《乌有乡地图》[320K/MP3][21.81MB]
- 陈粒《乌有乡地图》[FLAC/分轨][398.39MB]