%% Initialize PS3res=640; timeoutfreeze=0; timeoutclose=0; [vid,dev_PS3Eye,dev_Quickcam,dev_other]=InitCam10(PS3res,timeoutfreeze,timeoutclose); %% PARAMETERS % % Read the parameters by typing vid.Parameter % % Modify them with the command set(vid,'Parameter',value) or % vid.Parameter=value; % % A list of parameters for the video flux can be obtained with the command % set(vid): % % General Settings: % DiskLogger % FrameGrabInterval % FramesPerTrigger % LoggingMode: [ {memory} | disk | disk&memory ] % Name % ROIPosition % Tag % Timeout % UserData % % Color Space Settings % BayerSensorAlignment: [ {grbg} | gbrg | rggb | bggr ] % ReturnedColorSpace: [ {rgb} | grayscale | YCbCr | bayer ] % % Callback Function Settings: % ErrorFcn: string -or- function handle -or- cell array % FramesAcquiredFcn: string -or- function handle -or- cell array % FramesAcquiredFcnCount % StartFcn: string -or- function handle -or- cell array % StopFcn: string -or- function handle -or- cell array % TimerFcn: string -or- function handle -or- cell array % TimerPeriod % TriggerFcn: string -or- function handle -or- cell array % % Trigger Settings: % TriggerFrameDelay % TriggerRepeat % % Acquisition Sources: % SelectedSourceName: [ {input1} ] %% ACQUIRE % Image info frame = getsnapshot(vid); siz=size(frame); % Mode mode='s'; % Mode selection: 's': snapshot % 'v': video switch mode % Snapshot case 's' % set(vid,'FramesPerTrigger',100) % start(vid) % for i = 1:10 % frame = getsnapshot(vid); % end % stop(vid) % image(frame) set(vid,'FramesPerTrigger',120) start(vid) % Bring the acquired data into the workspace data = getdata(vid,vid.FramesPerTrigger); dat = sum(data(:,:,:,(vid.FramesPerTrigger-99):vid.FramesPerTrigger),4)./100./255; % figure(1),image(data(:,:,:,vid.FramesPerTrigger)) % figure(2), image(dat) % filename2='C:\Users\Pierre\Desktop\MSc_Project_Pendrive\_Measurements\LED-LP\LEDLP_G_mask8-8_cam6-14_lowexp_32cm_shotnoise.bmp' filename='C:\Users\Pierre\Desktop\Snapshot.bmp' % imwrite(data(:,:,:,vid.FramesPerTrigger),filename2,'bmp') imwrite(dat,filename,'bmp') case 'v' % The trigger is automatic at start by default. You can set it to manual % with this line: % triggerconfig(vid, 'Manual') or back to 'immediate' set(vid,'FramesPerTrigger',300) start(vid) % Bring the acquired data into the workspace [data time] = getdata(vid,vid.FramesPerTrigger); % time retrieval is optional you can write data=... figure,plot(time) % optional: check if acquisition time is linear xlabel('Frame #') ylabel('Time acquired (s)') title('Camera latency: Time VS frame number.') coeff=polyfit(1:length(time),time',1); % linear fit of t=coeff(1)*x+coeff(2) where x is the frame number hold on plot(coeff(1)*(1:length(time))+coeff(2),'k--') figure,plot(detrend(time)) % difference to the least-squares linear fit % elapsed_time = time(300) - time(1) optional disp(' ') disp('Camera Latency') disp(sprintf('1st frame after %3.3f s, average framerate over sample %3.1f Hz, estimated linear framerate %3.1f Hz',min(time),length(time)/(max(time)-min(time)),1/coeff(1))) I=sum(sum(sum(data,1),2),3); I1D=zeros(1,length(time)); I1D(1,:)=I(1,1,1,:); clear I figure,plot(time,I1D) xlabel('Time (s)') ylabel('Averaged intensity (a.u.)') title('Camera latency: average intensity of acquired frames over time.') otherwise error('Please specify the acquisition type.') % flushdata end %% Clean up %ClearCam10(vid);