В настоящее время я работаю над проектом, который обрабатывает файлы .nii
из neuro images
. Я преобразовал этот файл в .png
файлов. Теперь мне нужно, чтобы объединить эти 80 .png
в .nii
файлы снова.
Пожалуйста помоги.
Благодарю.
Строгий ответ - нет, вы не можете этого сделать. Потому что файлы png не содержат информации, необходимой для файла NIfTI.
Однако, если вам все равно, правильны ли координаты и информация о левом и правом, вы можете создать поддельный файл nii. Вы можете прочитать ваши файлы png (я полагаю, они имеют одинаковое измерение), используя цикл for
:
for i = 1:numberOfPNG_file
img(:,:,i) = imread(png_Files{i});
end
Вы можете использовать инструмент Matlab NIfTI для создания файла nii:
nii = nii_tool('init', img);
nii_tool('save', nii, 'my_nii.nii');
Надеюсь это поможет
%step 1: get the names of the files
files=dir('*.png');
file_names={files.name}';
%step 2: sort the files
%extract the numbers
%Here, the format of the name shoul be enterd and %d should replate the
%number, this is so that the files will be load in the right order
filenum = cellfun(@(x)sscanf(x,'%d.png'), file_names);
% sort them, and get the sorting order
[~,Sidx] = sort(filenum) ;
% use to this sorting order to sort the filenames
SortedFilenames = file_names(Sidx);
%step 3: combine images to single matrix:
%get number of files
num_of_files=numel(SortedFilenames);
for i=1:num_of_files
nifti_mat(:,:,i)=imread(SortedFilenames{i});
end
%step 4: conver to nifti and save:
filename='here_goes_the_name_of_the_file';
niftiwrite(nifti_mat,filename);