-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBleachCorrectionOfTimeLapseImages.m
More file actions
119 lines (101 loc) · 3.74 KB
/
BleachCorrectionOfTimeLapseImages.m
File metadata and controls
119 lines (101 loc) · 3.74 KB
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
function BleachCorrectionOfTimeLapseImages(A,B)
primarydir = strcat(A,B,'\','flatfield_corrected');
cd(primarydir)
primarylist = dir('*_s*');
primarynames = {primarylist.name};
primaryone = char(primarynames{1});
cd(strcat(A,B,'\flatfield_corrected\',primaryone))
finaldir = dir('*flat\');
finaldirnames = {finaldir.name};
%make sure you only correct '(mKate|EGFP|CFP|DIC)'
channelstoinput = {'_mKate','_EGFP','_CFP','DIC','_Hoechst'};
channelinputs = '(';
for i=1:length(channelstoinput)
if i ==1
channelinputs = strcat(channelinputs,channelstoinput{i});
elseif i < length(channelstoinput)
channelinputs = strcat(channelinputs,'|',channelstoinput{i});
else
channelinputs = strcat(channelinputs,'|',channelstoinput{i},')');
end
end
% p = regexp(finaldirnames,'c[0-3]');
% p = regexp(finaldirnames,'(mKate|EGFP|CFP|DIC)');
p = regexp(finaldirnames,channelinputs);
px = cellfun(@isempty,p,'UniformOutput',1);
finaldirnames = finaldirnames(~px);
for i = 1:length(finaldirnames);
cycle=1;
for subdir=primarynames
subdirname = char(subdir);
cd(strcat(A,B,'\flatfield_corrected\',subdirname))
SAVdir = strcat(A,B,'\flatfield_corrected\',subdirname,'\tiffs\');
finaldirname = char(finaldirnames{i});
cd (strcat(A,B,'\flatfield_corrected\',subdirname,'\',finaldirname));
filelist = dir('*.tif*');
if ~isempty(filelist)
filenames = {filelist.name};
medz = loadintostackanddeterminemedian(filenames,SAVdir,subdirname,channelinputs);
eachmedian(cycle,:) = medz;
cycle=cycle+1;
end
cd ..
end
medmedian = median(eachmedian,1);
normmedmedian = medmedian./median(medmedian);
for subdir=primarynames
subdirname = char(subdir);
cd(strcat(A,B,'\flatfield_corrected\',subdirname))
SAVdir = strcat(A,B,'\flatfield_corrected\',subdirname,'\tiffs\');
finaldirname = char(finaldirnames{i});
cd (strcat(A,B,'\flatfield_corrected\',subdirname,'\',finaldirname));
filelist = dir('*.tif*');
if ~isempty(filelist)
filenames = {filelist.name};
loadintostackandbleachcorrect(filenames,SAVdir,normmedmedian,channelinputs);
end
cd ..
end
end
end
function med = loadintostackanddeterminemedian(filenames,SAVdir,subdirname,channelinputs)
med = zeros(1,length(filenames));
FinalImage=zeros(512,512,length(filenames),'double');
for j = 1:length(filenames)
filename = char(filenames{j});
img = imread(filename);
FinalImage(:,:,j) = double(img);
med(j) = median(median(double(img)));
end
cd (SAVdir)
[a,b] = regexp(filename,channelinputs);
channel = filename(a:b);
savename = strcat(channel,'_flat_bleach_corr.tif');
disp(subdirname)
% for j = 1:length(filenames)
% medcorr = med(j)./medmed;
% img_bleach_corr = FinalImage(:,:,j)./medcorr;
% % imwrite(uint16(img_bleach_corr),char(savename),'WriteMode','append');
% end
end
function loadintostackandbleachcorrect(filenames,SAVdir,normmedian,channelinputs)
FinalImage=zeros(512,512,length(filenames),'double');
for j = 1:length(filenames)
filename = char(filenames{j});
img = imread(filename);
FinalImage(:,:,j) = double(img);
end
cd (SAVdir)
[a,b] = regexp(filename,channelinputs);
channel = filename(a:b);
savename = strcat(channel,'_flat_bleach_corr.tif');
disp(savename)
filepresent = dir(savename);
if ~isempty(filepresent)
delete(savename)
end
for j = 1:length(filenames)
img_bleach_corr = FinalImage(:,:,j)./normmedian(j);
imwrite(uint16(img_bleach_corr),char(savename),'WriteMode','append');
end
end