Files
ofm/Flowcytometer_Focusing_Jeevan2018/focusstack_1.m
moonanjum26 188e46804b first commit
2018-08-10 12:01:05 +05:30

58 lines
2.1 KiB
Matlab

function [Zval, Variance, currzpos] = focusstack_1(s,vid,z)
t1 = toc;currzpos=z;
snap = getsnapshot(vid);
imwrite(snap,strcat('images/withouthc/snap_at_start','.bmp'))
%fprintf(s,'L');
% CRUDE AF.
Z_travel_for_crude = 16000; crude_step_count = 200;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
crude_pulse_count = Z_travel_for_crude / crude_step_count;
crude_max_var=0; crude_loc_max_var=0;
crude_start_loc = z-(Z_travel_for_crude/2);
% gotoZ(s,crude_start_loc,currzpos);pause(1) ;
fprintf(s,'M');pause(3)
% for i=1: crude_pulse_count/2
% fprintf(s,'T');pause(0.35)
% end
currzpos=crude_start_loc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% now keep going up and taking var
crude_curr_loc = crude_start_loc;
Variance = []; Zval = [];
for i=1: crude_pulse_count
% variance
snap = getsnapshot(vid);
imwrite(snap,strcat('images/snap_at_',num2str(crude_curr_loc),'.bmp'))
crude_img = double(snap); crude_curr_var=var(crude_img(:));
%display(strcat('Variance',num2str(crude_curr_var),'Iter:',num2str(i)))
%pause(0.5)
Variance = [Variance crude_curr_var];
Zval = [Zval crude_curr_loc];
if (crude_curr_var > crude_max_var)
crude_max_var = crude_curr_var;
crude_loc_max_var = crude_curr_loc;
end
% update loc
crude_curr_loc = crude_curr_loc + crude_step_count ;
fprintf(s,'G');pause(0.1)
%gotoZ(s,crude_curr_loc,currzpos);
currzpos=crude_curr_loc;
end
disp(currzpos)
disp(crude_loc_max_var)
crude_pulse_count = round(abs(crude_loc_max_var - currzpos)/200);
for i=1: crude_pulse_count
if(currzpos>crude_loc_max_var)
fprintf(s,'T');pause(0.1)
currzpos = currzpos - 200;
elseif(currzpos<crude_loc_max_var)
fprintf(s,'G');pause(0.1)
currzpos = currzpos + 200;
end
end
pause(1)
snap = getsnapshot(vid);
imwrite(snap,strcat('images/withouthc/snap_at_end_crude','.bmp'))
t2 = toc;
disp(t2-t1)
end