-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMain.m
99 lines (81 loc) · 2.89 KB
/
Main.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
clc
clear all
close all
%% Hlavny skript
% Tento skript sluzi na segmentovanie MRI obrazu mozgu pomocou
% metaheuristických algoritmov. Je mozné si vybrať mozog na segmentovanie,
% vybrať algoritmus(FA, FASSO alebo SSO), typ segmentácie (rez po reze, 3D
% segmentácia upravených dát a kombinovaná 3D segmentácia)
% Výstupom skriptu je vypočítané skóre JACCARD a zobrazenie segmentovaného
% obrazu
%
% VYUŽITÍ OPTIMALIZAČNÍCH METOD PRO SEGMENTACI MRI DAT
% Autor: Kristína Olešová
% 25.05.2018
%% Urcenie premennych
index=7; % Vyber obrazu na segmentovanie/len nepárne čísla 1 az 42
n=30; % Pocet svetlusiek a pavukov/pocet pátracich agentov
MaxGeneration=100; % Pocet iteracii algoritmu
alg=1; %Vyber algoritmu na segmentovanie
% 1-Fasso
% 2-FA
% 3-SSO
nac_obrazy='D:\škola\Bákalárská práca\BRATS-1\Simulované data s riešením\'; %cesta na načítanie obrazov
uloz_obrazy='D:\škola\Bákalárská práca\AnimaciaFASSO'; %cesta na ulozenie obrazov
uloha=3; %vybratie typu segmentacie
% 1 kombinovana informacia
% 2 3D segmentacia upravenych dat
% 3 Rez po reze
vystup=3; %vybratie ulohy pre segmentovaný obraz
% 2 montáž pre kazdy jeden rez a ukazka objektivnej funkcie
% 3 výpočet JACCARD
% 1 ulozenie obrazkov
% Nacitavanie obrazu na segmentovanie
%% Načítanie dát z priečinka
% Nacitavanie obrazu na segmentovanie
[info,Info] = Import_files_from_folder(nac_obrazy,index);
%Ground true
V2=mha_read_volume(Info(1));
I2=V2(:,:,1:159);
%% Segmentovanie obrazu
%výber ulohy na segmentovanie
tic % počiatok sledovania výpočtového času
switch uloha
case 1
%3D segmentacia pomocou kombinovanej informácie
[I1,Segmentace]=kombinovanie(info,alg,n,MaxGeneration);
case 2
% 3D segmentacia dat vyuzitim dat T1C upravených pomocou ground true
[I1,befit,bfit,priebeh] = upravene_data(alg,n,MaxGeneration);
case 3
%Segmentácia rez po reze
[I1,befit,bfit,priebeh] = Rez_po_reze(info,n,MaxGeneration,alg);
otherwise
disp('Nespravne zadana hodnota úlohy. Nutne cisla od 1 - 3')
break
end
toc %Ukoncenie sledovania výpočtového času
%% Rozhodnutie o vystupe algoritmu
close all
switch vystup
case 1
% Ulozenie sekvencie vo vybranom priecinku
Ulozenie_sekvencie(I1,uloz_obrazy)
case 2
% Vizualne porovnanie segmentovaneho a indexovaneho obrazu
if uloha==1
disp('Pre tento typ segmentacie sa nezobrazuje objektivna funkcia')
else
Zobraz(I1,I2,priebeh,befit{1})
end
case 3
% Vyhodnocovanie segmentacie pomocou jaccardu pre jednotlive oblasti
[JACCARD,~,JACCARD_2] = Vyhodnotenie(I1,I2);
case 4
[II,II_gray] = fuzia(info,rez,2,'falsecolor');
otherwise
disp('Nespravne zadana hodnota vystupu. Nutne cisla od 1 - 4')
break
end
imshow4(I1)
disp('koniec algoritmu')