Mercurial > hg > camir-aes2014
comparison toolboxes/FullBNT-1.0.7/bnt/examples/dynamic/HHMM/Square/get_square_data.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e9a9cd732c1e |
---|---|
1 % Let the user draw a square with the mouse, | |
2 % and then click on the corners to do a manual segmentation | |
3 | |
4 ss = 6; | |
5 Q1 = 1; Q2 = 2; Q3 = 3; obsvel = 6; | |
6 CLOCKWISE = 1; ANTICLOCK = 2; | |
7 LR = 1; UD = 2; RL = 3; DU = 4; | |
8 | |
9 % repeat this block manually incrementing the sequence number | |
10 % and setting ori. | |
11 % (since I don't know how to call getmouse as a call-return function). | |
12 seq = 4; | |
13 %ori = CLOCKWISE | |
14 ori = ANTICLOCK; | |
15 clear xpos ypos | |
16 getmouse | |
17 % end block | |
18 | |
19 % manual segmentation with the mouse | |
20 startseg(1) = 1; | |
21 for i=2:4 | |
22 fprintf('click on start of segment %d\n', i); | |
23 [x,y] = ginput(1); | |
24 plot(x,y,'ro') | |
25 d = dist2([xpos; ypos]', [x y]); | |
26 startseg(i) = argmin(d); | |
27 end | |
28 | |
29 % plot corners in green | |
30 %ti = first point in (i+1)st segment | |
31 t1 = startseg(1); t2 = startseg(2); t3 = startseg(3); t4 = startseg(4); | |
32 plot(xpos(t2), ypos(t2), 'g*') | |
33 plot(xpos(t3), ypos(t3), 'g*') | |
34 plot(xpos(t4), ypos(t4), 'g*') | |
35 | |
36 | |
37 xvel = xpos(2:end) - xpos(1:end-1); | |
38 yvel = ypos(2:end) - ypos(1:end-1); | |
39 speed = [xvel(:)'; yvel(:)']; | |
40 pos_data{seq} = [xpos(:)'; ypos(:)']; | |
41 vel_data{seq} = [xvel(:)'; yvel(:)']; | |
42 T = length(xvel); | |
43 Q1label{seq} = num2cell(repmat(ori, 1, T)); | |
44 Q2label{seq} = zeros(1, T); | |
45 if ori == CLOCKWISE | |
46 Q2label{seq}(t1:t2) = LR; | |
47 Q2label{seq}(t2+1:t3) = UD; | |
48 Q2label{seq}(t3+1:t4) = RL; | |
49 Q2label{seq}(t4+1:T) = DU; | |
50 else | |
51 Q2label{seq}(t1:t2) = RL; | |
52 Q2label{seq}(t2+1:t3) = UD; | |
53 Q2label{seq}(t3+1:t4) = LR; | |
54 Q2label{seq}(t4+1:T) = DU; | |
55 end | |
56 | |
57 % pos_data{seq}(:,t), vel_data{seq}(:,t) Q1label{seq}(t) Q2label{seq}(t) | |
58 save 'square4' pos_data vel_data Q1label Q2label | |
59 | |
60 nseq = 4; | |
61 cases = cell(1,nseq); | |
62 for seq=1:nseq | |
63 T = size(vel_data{seq},2); | |
64 ev = cell(ss,T); | |
65 ev(obsvel,:) = num2cell(vel_data{seq},1); | |
66 ev(Q1,:) = Q1label{seq}; | |
67 ev(Q2,:) = num2cell(Q2label{seq}); | |
68 cases{seq} = ev; | |
69 end | |
70 save 'square4_cases' cases |