fslorient和fslswapdim命令对3D图像进行方向转换(neurological to radiological)
2010 年 12 月 03 日 xuemei 浏览:832 最后更新:2010 年 12 月 17 日
前面提到从scaner中下来的数据需要用dcm2nii或者MNIConvert把原始的dcm数据转化为NifTI的hdr/img或者nii格式。再用dcm2nii转化的时候有一个选项orient,可以自动对3D数据进行方向的转换,转到与标准空间最相似的方向。在脑成像数据处理,图像的坐标方向是非常重要的,同时也是很容易弄错的。数据处理时,一定要对数据的方向有很清楚的认识。在方向没有对之前,任何分析和处理都是不正确的。目前常提到的坐标有Neurological和Radiological两种坐标。
在这之前,首先了解一下NIfTI格式如何存储图像信息。以3D图像为例,256 × 256,Sagital128层的数据,也就是有256×256 ×128个voxels,而每个voxel的坐标就是(i,j,k)。第一个voxel就是(0,0,0),第二个voxel就是(1,0,0),第三个是(2,0,o).坐标总是从零开始,当i到最大值255时,开始j,当j到最大值是,再从k开始。这些坐标与解剖方向完全没有关系。那么NIfTI格式与解剖有关的信息存放在qform和sform距阵中。当qform和sform矩阵的编码不为0时,才能提供有用的解剖信息,当编码为0是,则是unknown。这两个矩阵其中一个矩阵存储scaner中空间的解剖坐标信息,另一个则存储MNNI152的标准空间的解剖坐标信息。通常情况下这两个矩阵只有一个能提供信息,要不就是两个都是一样的。那怎么看一个图像的这些信息呢。用fslhd命令就可以查看图像的这些信息:
fslhd 2008110402_t1_mprage.nii.gz
就可以看到一下信息:
filename 2008110402_t1_mprage.niisizeof_hdr 348data_type INT16dim0 3dim1 256dim2 256dim3 128dim4 1dim5 1dim6 1dim7 1vox_units mmtime_units Unknowndatatype 4nbyper 2bitpix 16pixdim0 0.0000000000pixdim1 1.0000000000pixdim2 1.0000000000pixdim3 1.3299789429pixdim4 0.0000000000pixdim5 0.0000000000pixdim6 0.0000000000pixdim7 0.0000000000vox_offset 352cal_max 0.0000cal_min 0.0000scl_slope 1.000000scl_inter 0.000000phase_dim 1freq_dim 2slice_dim 3slice_name alternating_increasingslice_code 3slice_start 0slice_end 127slice_duration 486.162506time_offset 0.000000intent Unknownintent_code 0intent_nameintent_p1 0.000000intent_p2 0.000000intent_p3 0.000000qform_name Scanner Anatqform_code 1qto_xyz:1 0.000000 0.000000 1.329979 -83.099068qto_xyz:2 -1.000000 0.000000 -0.000000 138.169495qto_xyz:3 0.000000 1.000000 -0.000000 -135.455063qto_xyz:4 0.000000 0.000000 0.000000 1.000000qform_xorient Anterior-to-Posteriorqform_yorient Inferior-to-Superiorqform_zorient Left-to-Rightsform_name Unknownsform_code 0sto_xyz:1 0.000000 0.000000 0.000000 0.000000sto_xyz:2 0.000000 0.000000 0.000000 0.000000sto_xyz:3 0.000000 0.000000 0.000000 0.000000sto_xyz:4 0.000000 0.000000 0.000000 0.000000sform_xorient Unknownsform_yorient Unknownsform_zorient Unknownfile_type NIFTI-1+file_code 1descrip t1_mprage_sagaux_file
在上面的信息中,dim1, dim2, dim3就是(i,j,k)信息。我们可以看到qform_name 是 Scanner Anat,并且qform_code编码为1,并且可知qform_xorient 是Anterior-to-Posterior;qform_yorient是 Inferior-to-Superior,而qform_zorient 是Left-to-Right。也就是说,如果我们用fslview打开这个图像,第一个窗口是x*z平面,屏幕上左右拉动绿色线,向右x增大。如果关注图像解剖方向Ap,向P看到MNI坐标中y变负;第二个窗口时y*z平面,屏幕上左右拉动绿色线,向右y增大。关注图像解剖方向IS,向右S则MNI坐标中z变正;第三个窗口是x*y平面,左右拉动绿线,则z增大,关注图像解剖方向AP,向右则向P,MNI坐标中x变正。然后我们用fslorient -getorient 2008110402_t1_mprage.nii.gz查看图像是radiological还是neurological,结果是radiological。为什么呢?首先要了解什么是Radiological。
Radiological的坐标系主要指以我们自己为坐标只要有下负上正,左负右正就可以,不用去看fslview中的LR,PA,IS等信息。Radiological主要是从放射扫描工作中来的。扫描员面对病人的时候,以自己为参考点,右手为正,头顶为正,前面为正,这样的一个三维坐标系。由于病人是面对扫描员的,所以在扫描员的坐标轴中,病人左脑就是在右边,右脑在左边。Radiological严格说与LR,PA,IS等解剖结构没有关系。只要用fslview打开,拉动图像上面的绿线左右移动,如果向右x值增大或者y增大,向上z增大就是Radiological的坐标系。上面的图像2008110402_t1_mprage.nii.gz是sagital方向采样的,256*256*128,而且qform_xorient是 Anterior-to-Posterior,qform_yorient 是Inferior-to-Superior,qform_zorient是Left-to-Right,也就是在x*z,y*z,x*y三个平面上,分别向右拉得到x,y,x增大,这与radiological的坐标系是一致的,所以是radiological。Neurological只是以病人为参照系,相当于病人背对着扫描员,左边就是左脑,右边就是右脑。
通常而言,我们可以在fslview中打开一个标准的MNI152_T1_2mm_brain,看看是什么样子的:xyz坐标,向右拉动绿色的线,分别得到x,y,x都增大,向上得到z增大。对于解剖方向,旁边的MNI坐标为(有正负):LR,PA;IS。记住标准空间中xyz坐标和MNI坐标的方向。可以用命令fslorient -getorient MNI152_T1_2mm_brain 可以查看MNI152_T1_2mm_brain的坐标是Radiological。
我们通常用MRIconvert和dcm2nii进行数据格式的转换,两个转换生成的方向一般是不一样的。MRIconvert不进行reorient。刚才我们的256*256*128的sagital的3D数据,经过MRIconvert转换后,得到2008110402_t1_mprage.nii.gz,fslreorient -getorient命令发现是radiological,解剖方向与MNI吻合,即MNI的x是LR,y是PA,z是IS。这时候只需要fslreorient2std 2008110402_t1_mprage.nii.gz 3d.nii.gz命令就可以了。可以用fslhd查看3d.nii.gz的信息,会发现与MNI152_T1_2mm_brain是一样的,在fslview检查也会发现与MNI一样,qform和sform都是:
qform_xorient Left-to-Right qform_yorient Anterior-to-Posterior qform_zorient Inferior-to-Superior
用dcm2nii转换得到三个文件:2008110402_t1_mprage.nii.gz,o2008110402_t1_mprage.nii.gz, co2008110402_t1_mprage.nii.gz。文件2008110402_t1_mprage.nii.gz没有经过任何的处理,o开头的是经过reorient的图像,co是经过切脖子的并且reorient的图像。用fslhd查看o2008110402_t1_mprage.nii.gz和co2008110402_t1_mprage.nii.gz,这两个图像的信息是一样的,会发现qform_code和sform_code都是1,如下:
qform_xorient Right-to-Left qform_yorient Anterior-to-Posterior qform_zorient Inferior-to-Superior
用fslorient -getorient 会发现是Neurological。这种情况需要用fslorient -swaporient co2008110402_t1_mprage.nii.gz 3d.nii.gz就可以了。然后再用fslhd和fslorient -getorient查看一下是否与MNI一样。
fslswapdim命令可以一步完成操作。以2008110402_t1_mprage.nii.gz为例,在fslview中仔细地查看会发现,原来的-z是正确的x,-x是正确的y,而y是正确的z,于是命令:fslorient -swaporient 2008110402_t1_mprage.nii.gz -z -x y 3d.nii.gz.然后用fslhd和fslorient -getorient查看图像与MNI的方向是否一样的。
发表评论
XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
TrackBack URL | 这篇文章上的评论的 RSS feed