
%% Skript pro segmetnaci DICOM souborů metodou prahovaní. %%
%Veronika Smékalová, 2018
%analyzovaná data jsou ve složce spolu s tímto skriptem

clc, clear all, close all;

%% načtení dat
for k = 901:910                       %načítání řezů                       
    if k>=0 && k<10; 
        dcmFile = sprintf('2431WT_000%d.dcm', k);    
    elseif k>9 && k<100;
    	dcmFile = sprintf('2431WT_00%d.dcm', k);   
    elseif k>99 && k<1000;
    	dcmFile = sprintf('2431WT_0%d.dcm', k);   
    elseif k>999 && k<10000;
        dcmFile = sprintf('2431WT_%d.dcm', k);
    end
    
    if exist(dcmFile, 'file')
		dcmData = dicomread(dcmFile); 
        else
		fprintf('Soubor %s neexistuje.\n', dcmFile); 
    end

%% mediánová filtrace
dcmData = medfilt2(dcmData, [7 7]);     

%% výpočet masky
ind = find(dcmData~=0);

%% prahování
vysledek = zeros(size(dcmData)); 
autPrah = multithresh(dcmData(ind)); %automaticky vygenerovaný práh pro daný snímek
hodnota = 13600;                     %vypočítaný podmínkový práh
if autPrah >= hodnota                %podmínka velikosti automaticky vypočítaného prahu
    vysledek = imquantize(dcmData, autPrah);
else
    vysledek = imquantize(dcmData, hodnota);
end

%% vizualizace
ind2 = find(vysledek>1);
v = dcmData;
v(ind2) = 0; 
imshow(v,[]);                    %zobrazeni původních obrazů a vygenerovaných binárních obrazů

%% uložení segmentovaného binárního obrazu 
vysledek = vysledek-1; 
nazev = sprintf ('jatra_2431WT_prah_%d.tiff',k);
imwrite(vysledek,nazev, 'tiff','Compression','none');     %bezkompresní uložení binárních obrazů

end
