Скопируйте один заголовок Nifti в другой

У меня есть переменная prob_map в matlab (карта вероятностей), которую я хочу сохранить в формате.nii. Я сделал это с помощью двухстрочного кода:

 nii = make_nii(prob_map); 
 save_nii(nii,'prob.nii');

Это сделано успешно, однако информация заголовка не совместима с моим исходным изображением CT с именем "img.nii" (следовательно, в программном обеспечении ITK-SNAP наложение prob_map на изображение невозможно). Я хочу скопировать заголовок img.nii в заголовок 'prob.nii' перед сохранением. На самом деле я хочу скопировать заголовок так долго, как это возможно. например, размер заголовка не может быть скопирован, в то время как ориентация и другая информация могут быть скопированы. Есть ли какая-нибудь функция, которая копирует один заголовок в другой перед сохранением nii? Какую информацию нужно скопировать, чтобы сохранить nii в одном?

1 ответ

Вы можете попробовать использовать библиотеку spm matlab

# Grab header from an existing file (and optionally, get the data)
HeaderInfo  = spm_vol('img.nii')          # use spm_vol to read file header
NiftiData   = spm_read_vol(HeaderInfo)    # use spm_read_vol to get data

# Update the header contents to correspond with your new data
HeaderInfo.fname = 'prob.nii';
HeaderInfo.private.dat.fname = HeaderInfo.fname;

# Save the file with the adapted Header
spm_write_vol(HeaderInfo,Data);           # where Data is your image array
Другие вопросы по тегам