|
a |
|
b/Thoracic Organs Segmentation code/MAP/NaiveBayesianClassifier.asv |
|
|
1 |
function [Pmax,ClassNum]= NaiveBayesianClassif(dataPoints,Intensity, Displacements); |
|
|
2 |
|
|
|
3 |
%load mean and std values of features extracted by hand |
|
|
4 |
load MeanValues.mat |
|
|
5 |
load StdValues.mat |
|
|
6 |
%the first column of the .mat files corresponds to the manually segmented heart and the |
|
|
7 |
%second column to background values . |
|
|
8 |
|
|
|
9 |
%Intensity |
|
|
10 |
Intensity=double(meshgrid(Intensity,1:2)); |
|
|
11 |
MeanValue=meshgrid(MeanValues(1,1:2),1:size(dataPoints,1))'; |
|
|
12 |
StdValue=meshgrid(StdValues(1,1:2),1:size(dataPoints,1))'; |
|
|
13 |
A1=exp(-(Intensity-MeanValue').^2./(2*StdValue'.^2)); |
|
|
14 |
clear Intensity StdValue MeanValue |
|
|
15 |
|
|
|
16 |
|
|
|
17 |
%Displacement x |
|
|
18 |
DisplacementX=meshgrid(Displacements(:,1),1:2); |
|
|
19 |
MeanValue=meshgrid(MeanValues(2,1:2),1:size(dataPoints,1)); |
|
|
20 |
StdValue=meshgrid(StdValues(2,1:2),1:size(dataPoints,1)); |
|
|
21 |
A2=exp(-(DisplacementX-MeanValue').^2./(2*StdValue'.^2)); |
|
|
22 |
clear DisplacementX StdValue MeanValue |
|
|
23 |
%Displacement y |
|
|
24 |
DisplacementY=meshgrid(Displacements(:,2),1:2); |
|
|
25 |
MeanValue=meshgrid(MeanValues(3,1:3),1:size(dataPoints,1)); |
|
|
26 |
StdValue=meshgrid(StdValues(3,1:3),1:size(dataPoints,1)); |
|
|
27 |
A3=exp(-(DisplacementY-MeanValue').^2./(2*StdValue'.^2)); |
|
|
28 |
clear DisplacementY StdValue MeanValue |
|
|
29 |
|
|
|
30 |
|
|
|
31 |
P=A1.*A2.*A3.*A4; |
|
|
32 |
clear A1 A2 A3 A4 |
|
|
33 |
|
|
|
34 |
[Pmax,ClassNum]=max(P,[],1); |