Intensitynormalizationofmulti-channelMRIimagesusingthemethodproposedbyNyuletal.2000.Intheoriginalpaper,theauthorssuggestamethodwhereasetofstandardhistogramlandmarksarelearnedfromasetofMRIimages.Theselandmarksarethenusedtoequalizethehistogramsoftheimagestonormalize.Inbothlearningandtransformation,thehistogramsareusedtofindtheintensitylandmarks.Inourimplmentation,thelandmarksarecomputedbasedonthetotalrangeofintensitiesinsteadofthehistograms.
Howitworks:Thenormalizationiscarriedoutintwosteps:
Learningthelandmarkparameters:Fromasetoftrainingimages,thelandmarkparametersarelearnedusingthefunctionlearn_intensity_parameters.Intensityparametersì_minandi_maxhavetobesetbytheuser.Thesetwovaluesestablishtheminimumandmaximumintensitiesofthestandardintensityscale.
methodT='spline';%ormethodT='linear';train_im_path{1}='/path/to/images/1/t1.nii';train_im_path{2}='/path/to/images/2/t1.nii';...train_im_path{n}='/path/to/images/n/t1.nii';i_min=min_intensity;i_max=max_intensity;%learntheparametersm_k=learn_intensity_landmarks(train_im_path,i_min,i_max);Theoutputstructm_kcontainsthestandardlandmarkslearnedfromtheinputimages.Theselandmarksrefertotheminimumintensity,thesignalintensitydeciles{d10,...,d90},andthemaximumintensityofinterest.
ApplythetransformationfunctiontoeachoftheimagestonormalizeTheoutputstructm_kisusedtomaptheintensitiesofeachoftheinputimageswithrespecttothestandardscale.Theoriginalpaperimplementsafunctionthatmapslinearlytheinputintensitiesintothestandardhistogram.However,theauthorssuggestthatothermappingfunctionscanbealsoused.Here,inputintensitiesaremappedusingasplinefunction.
input_image='/path/to/input/image'out_name='/path/to/input/image/normalized_scan'apply_intensity_transformation(input_image,out_name,m_k,methodT);Notes:Inputimageshavetobeskull-strippedforoptimalresults.Ifimagesarenotskull-strippedbutbackgroundintensityis<0.05,themethodshouldalsowork.Withbackgroundintensitieshigherthanthisthresholdthelandmarksmaybealteredinsomeunexpectedwayduetoremainingskull,fatoreyes.
Thecurrentmethodusesthenifti_toolsrepositoryavailablehere.AddittoyourMatlabpathorinitializetheincludedsubmoduleaftercloningtheprojectas:
gitsubmoduleinitgitsubmoduleupdateCredits:SergiValverde/NeuroImageComputingGroup.VisionandRoboticsInsitituteVICOROB(UniversityofGirona)
评论