Конвертировать .png файлы в .nii (файлы NiFti)

1

В настоящее время я работаю над проектом, который обрабатывает файлы .nii из neuro images. Я преобразовал этот файл в .png файлов. Теперь мне нужно, чтобы объединить эти 80 .png в .nii файлы снова.

Пожалуйста помоги.

Благодарю.

  • 0
    Пожалуйста, используйте необходимые теги. И расскажите немного о том, как вы конвертируете файл .nii в файл .png. Кроме того, быть ясно, что вы используете Python или Matlab ??
  • 0
    У меня есть файл .nii, преобразованный в 80 файлов .png в Matlab. Но мне нужен способ объединить их обратно в Python или в Matlab
Показать ещё 3 комментария
Теги:
conv-neural-network
file-format

2 ответа

1

Строгий ответ - нет, вы не можете этого сделать. Потому что файлы 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');
0

Надеюсь это поможет

    %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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню