% % % % % elastix_raw_data
% Tento program je součástí diplomové práce práce:
% Metody pro zpracování termovizních snímků s detekcí stanovené oblasti obličeje
% Autor: Dana Kolářová
% ID: 124347
% Škola: VUT Brno
% Fakulta: FEKT
% Obor: Biomedicínské inženýrství a bioinformatika
%************************************************
% Aplikace je spustitelná v prostředi Matlab.
% Použitá verze : Matlab 7.9.0 (R2009b)
% Tato funkce slouží k  převedení durových dat ze snímku, které jsou ve
% formátu ' '.tif, do formátu ' '.mhd, který muže být zpracován programem
% elastix
%
% Tato funkce se volá jako: elastix_export_raw_data(NewPath,FileName,N)
%
% Vstupy:
% NewPath - cest k souboru
% FileName - názvy snímků
% N - počet snímků

function elastix_export_raw_data(NewPath,FileName,N)


for i=1:N
    name=FileName{1,i}; % načtení snímku
    data=imread([NewPath , name(1:end-3),'tif' ]); 
    mhd = cell(13,1); % převod na formát mhd
    mhd{1} = 'ObjectType = Image';
    mhd{2} = 'NDims = 2';
    mhd{3} = 'BinaryData = True';
    mhd{4} = 'BinaryDataByteOrderMSB = False';
    mhd{5} = 'CompressedData = False';
    mhd{6} = 'TransformMatrix = 1 0 0 1';
    mhd{7} = 'Offset = 0 0';
    mhd{8} = 'CenterOfRotation = 0 0';
    mhd{9} = 'AnatomicalOrientation = RAI';
    mhd{10} = 'ElementSpacing = 1 1';
    mhd{12} = 'ElementType = MET_SHORT';
    
    vel = size(data);
    s = num2str([vel(2) vel(1)]);
    mhd{11} = ['DimSize = ' s];
    data = permute(data,[2 1]);
    name=FileName{1,i};
    s = [name(1:end-4),'.raw']; % vytvoří soubor .raw
    mhd{13} = ['ElementDataFile = ' s];
    
    fid=fopen([NewPath '\' s],'w+');
    fwrite(fid,data,'short'); % datový typ short
    fclose(fid); 
  
    s = [name(1:end-4),'.mhd']; % název stejný akorát přípona mhd
        fid=fopen([NewPath '\' s],'w+');
        for j = 1:13   % tady byla 13
        fprintf(fid,'%s\n',mhd{j,:});
        end;
        fclose(fid);
      
end