58 lines
2.1 KiB
Matlab
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 |