forked from januhlenberg/Signa
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathShadowMask.m
More file actions
33 lines (25 loc) · 902 Bytes
/
Copy pathShadowMask.m
File metadata and controls
33 lines (25 loc) · 902 Bytes
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
%% Read Images:
%im = imread('ng_00_20.851-1.jpg');
im = imread('C:\Users\Jan\Desktop\Training\17343\04\02\23.483.jpg');
figure, imshow(im);
% Medianfilter
r = medfilt2(double(im(:,:,1)), [3,3]);
g = medfilt2(double(im(:,:,2)), [3,3]);
b = medfilt2(double(im(:,:,3)), [3,3]);
%% Calculate Shadow Mask
shadow_ratio = ((4/pi).*atan(((b-g))./(b+g)));
figure(1), imshow(shadow_ratio, []); colormap(jet); colorbar;
% Threshold auf 0.05 gesetzt. Bei gr??eren Werten weniger Schatten
% detektiert
shadow_mask = shadow_ratio>0.05;
figure(2), imshow(shadow_mask, []);
%%
shadow_mask(1:5,:) = 0;
shadow_mask(end-5:end,:) = 0;
shadow_mask(:,1:5) = 0;
shadow_mask(:,end-5:end) = 0;
% Treshold f?r die Gr??e der Schatten
shadow_mask = bwareaopen(shadow_mask, 1000);
[x,y] = find(imdilate(shadow_mask,strel('disk',2))-shadow_mask);
figure, imshow(im); hold on,
plot(y,x,'.b'), title('Shadow Boundaries');