|
a |
|
b/All Matlab Code/Code for Fractal Analysis/boxdiv3.m |
|
|
1 |
%% Quantification of Trabeculae Inside the Heart from MRI Using Fractal Analysis |
|
|
2 |
|
|
|
3 |
%% This code is written by- |
|
|
4 |
%Md. Kamrul Hasan, M1 MAIA |
|
|
5 |
%Md. Fakrul Islam Tushar, M1 MAIA |
|
|
6 |
%% |
|
|
7 |
function c=boxdiv3(c,p) |
|
|
8 |
siz = length(c); |
|
|
9 |
if siz==1 |
|
|
10 |
c=true; |
|
|
11 |
else |
|
|
12 |
siz2 = round(siz/2); |
|
|
13 |
|
|
|
14 |
% sub-cube top-left front |
|
|
15 |
c(1:siz2,1:siz2,1:siz2) = c(1:siz2,1:siz2,1:siz2) & (rand<p); |
|
|
16 |
if c(1,1,1) |
|
|
17 |
c(1:siz2,1:siz2,1:siz2) = boxdiv3(c(1:siz2,1:siz2,1:siz2),p); |
|
|
18 |
end |
|
|
19 |
|
|
|
20 |
% sub-cube top-right front |
|
|
21 |
c((1+siz2):siz,1:siz2,1:siz2) = c((1+siz2):siz,1:siz2,1:siz2) & (rand<p); |
|
|
22 |
if c(1+siz2,1,1) |
|
|
23 |
c((1+siz2):siz,1:siz2,1:siz2) = boxdiv3(c((1+siz2):siz,1:siz2,1:siz2),p); |
|
|
24 |
end |
|
|
25 |
|
|
|
26 |
% sub-cube bottom-left front |
|
|
27 |
c(1:siz2,(1+siz2):siz,1:siz2) = c(1:siz2,(1+siz2):siz,1:siz2) & (rand<p); |
|
|
28 |
if c(1,1+siz2,1) |
|
|
29 |
c(1:siz2,(1+siz2):siz,1:siz2) = boxdiv3(c(1:siz2,(1+siz2):siz,1:siz2),p); |
|
|
30 |
end |
|
|
31 |
|
|
|
32 |
% sub-cube bottom-right front |
|
|
33 |
c((1+siz2):siz,(1+siz2):siz,1:siz2) = c((1+siz2):siz,(1+siz2):siz,1:siz2) & (rand<p); |
|
|
34 |
if c(1+siz2,1+siz2,1) |
|
|
35 |
c((1+siz2):siz,(1+siz2):siz,1:siz2) = boxdiv3(c((1+siz2):siz,(1+siz2):siz,1:siz2),p); |
|
|
36 |
end |
|
|
37 |
|
|
|
38 |
% sub-cube top-left bottom |
|
|
39 |
c(1:siz2,1:siz2,(1+siz2):siz) = c(1:siz2,1:siz2,(1+siz2):siz) & (rand<p); |
|
|
40 |
if c(1,1,1+siz2) |
|
|
41 |
c(1:siz2,1:siz2,(1+siz2):siz) = boxdiv3(c(1:siz2,1:siz2,(1+siz2):siz),p); |
|
|
42 |
end |
|
|
43 |
|
|
|
44 |
% sub-cube top-right bottom |
|
|
45 |
c((1+siz2):siz,1:siz2,(1+siz2):siz) = c((1+siz2):siz,1:siz2,(1+siz2):siz) & (rand<p); |
|
|
46 |
if c(1+siz2,1,1+siz2) |
|
|
47 |
c((1+siz2):siz,1:siz2,(1+siz2):siz) = boxdiv3(c((1+siz2):siz,1:siz2,(1+siz2):siz),p); |
|
|
48 |
end |
|
|
49 |
|
|
|
50 |
% sub-cube bottom-left bottom |
|
|
51 |
c(1:siz2,(1+siz2):siz,(1+siz2):siz) = c(1:siz2,(1+siz2):siz,(1+siz2):siz) & (rand<p); |
|
|
52 |
if c(1,1+siz2,1+siz2) |
|
|
53 |
c(1:siz2,(1+siz2):siz,(1+siz2):siz) = boxdiv3(c(1:siz2,(1+siz2):siz,(1+siz2):siz),p); |
|
|
54 |
end |
|
|
55 |
|
|
|
56 |
% sub-cube bottom-right bottom |
|
|
57 |
c((1+siz2):siz,(1+siz2):siz,(1+siz2):siz) = c((1+siz2):siz,(1+siz2):siz,(1+siz2):siz) & (rand<p); |
|
|
58 |
if c(1+siz2,1+siz2,1+siz2) |
|
|
59 |
c((1+siz2):siz,(1+siz2):siz,(1+siz2):siz) = boxdiv3(c((1+siz2):siz,(1+siz2):siz,(1+siz2):siz),p); |
|
|
60 |
end |
|
|
61 |
end |
|
|
62 |
%% END |