-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcameraTestCalibrate.m
More file actions
78 lines (63 loc) · 1.99 KB
/
Copy pathcameraTestCalibrate.m
File metadata and controls
78 lines (63 loc) · 1.99 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
% cameraTestCalibrate.m
%
% usage: cameraTestCalibrate()
% by: justin gardner
% date: 10/15/19
% purpose: tries to calibrate time of acquisition
%
function retval = cameraTestCalibrate(e)
% check arguments
if ~any(nargin == [1])
help cameraTestCalibrate
return
end
% get first set of camera images
c = e.stimuli{1}.cameraImages{1};
% bring up figure with some images
mlrSmartfig('cameraTestCalibrate','reuse');clf;
startImage = 50;
skipImage = 50;
nDisp = floor((350-startImage)/skipImage);
for iDisp = 1:nDisp;
thisImage = startImage+(iDisp-1)*skipImage;
%subplot(1,nDisp,iDisp);
imagesc(c.im(:,:,thisImage)');
colormap(gray);
imageTimeStamp(iDisp) = c.t(thisImage);
% title(sprintf('Time: %i',imageTimeStamp(iDisp)));
title(sprintf('Time: %.4f',imageTimeStamp(iDisp)));
r = input('What number do you see: ','s');
% timestamp(iDisp) = str2num(r);
% disp(sprintf('Frame: %i happened at: %.4f',imageTimeStamp(iDisp),timestamp(iDisp)));
end
imageTimeStampOffset = min(imageTimeStamp);
imageTimeStamp = imageTimeStamp-imageTimeStampOffset;
imageTimeStampStd = std(imageTimeStamp);
imageTimeStamp = imageTimeStamp/imageTimeStampStd;
% get slope and offset
x = imageTimeStamp(:);x(:,2) = 1;
fit = (((x' * x)^-1) * x')*timestamp(:);
clf;subplot(1,2,1);
plot(imageTimeStamp,timestamp,'ko');
hold on
plot(imageTimeStamp,x*fit,'r-');
keyboard
c = e.stimuli{1}.cameraImages{end};
% now convert all time stamps
c.tz = (c.t-imageTimeStampOffset)/imageTimeStampStd;
c.tcalibrated = c.tz*fit(1) + fit(2);
startImage = 1;
skipImage = 30;
nDisp = floor(350/skipImage);
for iDisp = 1:nDisp;
subplot(1,2,2);cla;
thisImage = startImage+(iDisp-1)*skipImage;
imagesc(c.im(:,:,thisImage)');
colormap(gray);
imageTimeStamp(iDisp) = c.tcalibrated(thisImage);
title(sprintf('Time: %f',imageTimeStamp(iDisp)));
r = input('What number do you see: ','s');
% timestamp(iDisp) = str2num(r);
% disp(sprintf('Frame: %i happened at: %.4f',imageTimeStamp(iDisp),timestamp(iDisp)));
end
keyboard