-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathImMerge1.m
More file actions
39 lines (33 loc) · 910 Bytes
/
ImMerge1.m
File metadata and controls
39 lines (33 loc) · 910 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
34
35
36
37
function Image = ImMerge1(im1,im2,im3,a,verbose)
E_max = max(max(im1));
mask = im1>= E_max/a(2);
maskAll = mask(:,:,1).*mask(:,:,2).*mask(:,:,3);
mask(:,:,1) = double(maskAll);
mask(:,:,2) = double(maskAll);
mask(:,:,3) = double(maskAll);
mask1 = mask;
%mask the lowest exposure pixels
mask = im1 < E_max/a(3);
maskAll = mask(:,:,1).*mask(:,:,2).*mask(:,:,3);
mask(:,:,1) = double(maskAll);
mask(:,:,2) = double(maskAll);
mask(:,:,3) = double(maskAll);
mask3 = mask;
%mask two is the inverse of mask1 and mask3
mask2 = not(mask1) .* not(mask3);
Image1 = (im1.*mask1);
Image2 = (im2.*mask2/a(2));
Image3 = ((im3.*mask3)/a(3));
if verbose
figure()
subplot(1,4,1)
imshow(uint8(mask1*255));
subplot(1,4,2)
imshow(uint8(mask2*255));
subplot(1,4,3)
imshow(uint8(mask3*255));
subplot(1,4,4)
imshow(uint8(mask1 + mask2 + mask3)*255)
end
Image = Image1 + Image2 + Image3;
end