-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdetection_2_demo.m
119 lines (115 loc) · 2.77 KB
/
detection_2_demo.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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
%% Show input
% t = Tiff('yy02023.tif','r');
% t = Tiff('yy02045.tif','r');
% t = Tiff('yy02046.tif','r');
% t = Tiff('yy02047.tif','r');
t = Tiff('yy02049.tif','r');
% t = Tiff('yy02065.tif','r');
imageData = read(t);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
% Y2 = medfilt2(Y2);
if(false)
Y = imageData(:,:,1);
Y2 = imageData(:,:,2);
Y3 = imageData(:,:,3);
figure(1);
imshow(imageData);
title('OCT original Image (RGB)');
Y(Y<100) = 0;
Y2_tmp = medfilt2(Y2,[23,23]);
Y2(Y2_tmp < 25) = 0;
%% edge detection & selection
BW1 = edge(Y,'canny');
figure(8);
imshow(BW1);
title('canny 1');
BW2 = edge(Y2,'canny');
figure(9);
imshow(BW2);
title('canny 2');
Y2_v2 = Y2;
Y2_v2(BW1) = Y2_v2(BW1).* 1.5;
Y2_v2(BW2) = Y2_v2(BW2).*3;
figure(10);
imshow(Y2_v2);
title('Y2_v2');
BW2_v2 = edge(Y2_v2,'canny');
figure(11);
imshow(BW2_v2);
title('canny 2_v2');
end
if(false)
Y = imageData(:,:,1);
figure(1); imshow(Y);
Bright = Y;
CertainlyBright=Bright; CertainlyBright(CertainlyBright<80) = 0; CertainlyBright(CertainlyBright>0)=200;%figure(2);imshow(CertainlyBright);
MaybeB=Bright;MaybeB(MaybeB<40)=0;MaybeB(MaybeB>=80)=0;MaybeB(MaybeB>0)=150;%figure(3);imshow(MaybeB);
Bright=CertainlyBright+MaybeB;%figure(4);imshow(Bright);
Dark = Y;
MaybeD=Dark;MaybeD(MaybeD<15)=0;MaybeD(MaybeD>=40)=0;MaybeD(MaybeD>0)=75;figure(5);imshow(MaybeD);
All=Bright+MaybeD;figure(6);imshow(All);
threshold = 75;
More=medfilt2(All);More(More<threshold)=0;figure(7);imshow(More);% delete small noises
count = 1;
end
Y = imageData(:,:,1);
Y = Y(1:466,510:880);
Y = double(Y)/255;
figure(1);imshow(Y);
[U,S,V] = svd(Y);
S(30:end,:)=0;
% figure(2);imshow(U*S*V');
Ym = movmean(Y,6,2);
Ym = Ym';
Ym = movmean(Ym,6,2);
Ym = Ym';
% figure(3);imshow(Ym);
Ym(Ym<prctile(Ym,25)) = 0;% 35 60
% Ym = Ym';
% Ym = movmean(Ym,6,2);
% Ym = Ym';
% Ym = movmean(Ym,6,2);
% Ym(Ym<0.02) = 0;
ec = edge(Ym,'canny');
figure(4);imshow(ec);
% figure(8);
% while(1)
% More=medfilt2(More);More(More<threshold)=0;
% count = count + 1;
% if mod(count, 5) == 0
% imshow(More);
% hhh = 1;
% end
% end
% figure(12);
% imshow(edge(Y2_v2));
% title('edge of Y2v2');
% BW3 = edge(Y3,'canny');
% figure(10);
% imshow(BW3);
% title('canny 3');
% Edge Extraction
% length_min = 340;
% rownow = 1;
% while ~length_min(find(Ym(rownow,:)))
% rownow = rownow + 1;
% end
% col = find(Ym(rownow,:));
% xy = [rownow, col(1)];
% if Ym(xy(1,1)+1,xy(1,2)-1)
% xy(2,:) = [xy(1,1)+1,xy(1,2)-1];
% else
% Ym[]
% end