source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/BlueCCal/MultiCamSelfCal/BlueCLocal/bluechoengg.m @ 86

Last change on this file since 86 was 37, checked in by (none), 15 years ago

Added original make3d

File size: 3.1 KB
Line 
1function [align] = bluechoengg(in,config)
2% bluechoengg ... local routines for the hoengg installation
3%
4% [align] = bluechoengg(in,config)
5% in, config ... see the main GOCAL script
6%
7% align ... structures aligned wit the specified world frame
8%
9% $Id: bluechoengg.m,v 2.1 2005/05/20 15:27:37 svoboda Exp $
10
11Cst = in.Cst;
12Rot = in.Rot;
13
14drawscene(in.Xe,Cst',Rot,41,'cloud','Graphical Output Validation: View from top or bottom',config.cal.cams2use);
15
16horizplane.idx(1) = find(config.cal.cams2use==13);
17horizplane.idx(2) = find(config.cal.cams2use==14);
18horizplane.idx(3) = find(config.cal.cams2use==15);
19horizplane.idx(4) = find(config.cal.cams2use==16);
20horizplane.vec = pinv([Cst(horizplane.idx,1:2),ones(size(horizplane.idx))'])*Cst(horizplane.idx,3);
21horizplane.par = [-horizplane.vec(1),-horizplane.vec(2),1,-horizplane.vec(3)];
22horizplane.n   = horizplane.par(1:3)';
23
24% set the camera on top
25set(gca,'CameraTarget',mean(Cst(horizplane.idx,:)));
26set(gca,'CameraPosition',mean(Cst(horizplane.idx,:))+3*horizplane.n');
27% figure(41), print -depsc grapheval.eps
28
29% definition of the absolute world frame
30% ccam(11).C = [1.40, -2.05, 2.70];
31cam(13).C = [-1.40, -2.55, 2.70]';
32cam(14).C = [-1.40, 2.70, 2.70]';
33cam(15).C = [0, 2.70, 2.70]';
34cam(16).C = [1.40, 2.70, 2.70]';
35
36cam(1).C  = [-3.70, -2.55, 1.55]';                 % relatively ad hoc values to improve the stability
37cam(5).C        = [-3.70, 4.06, 1.55]';
38cam(6).C  = [3.70, 4.06, 1.55]';
39cam(10).C       = [3.70, -2.55, 1.55]';
40% of the similarity computation
41
42[align.simT.s, align.simT.R, align.simT.t]  = estsimt([Cst(find(config.cal.cams2use==1),:)', Cst(find(config.cal.cams2use==5),:)', Cst(find(config.cal.cams2use==6),:)', Cst(find(config.cal.cams2use==10),:)',Cst(horizplane.idx,1:3)'],[cam(:).C]);
43[align.P, align.X]                                                = align3d(in.Pe,in.Xe,align.simT);                   
44% save aligned data
45if 1 % SAVE_STEPHI | SAVE_PGUHA
46        [align.Cst,align.Rot] = savecalpar(align.P,config);
47end
48% plot the 3D results from a better perspective by estimating the plane of the Cams 9,10,17,18
49% let call this plane "horizontal".
50% this plot makes sense only for the BigBlueC
51horizplane.vec = pinv([align.Cst(horizplane.idx,1:2),ones(size(horizplane.idx))'])*align.Cst(horizplane.idx,3);
52horizplane.par = [-horizplane.vec(1),-horizplane.vec(2),1,-horizplane.vec(3)];
53horizplane.n   = horizplane.par(1:3)';
54drawscene(align.X,align.Cst',align.Rot,61,'cloud','Graphical Output Validation: View from the top camera',config.cal.cams2use);
55% set the camera on top
56set(gca,'CameraTarget',mean(align.Cst(horizplane.idx,:)));
57set(gca,'CameraPosition',mean(align.Cst(horizplane.idx,:))+3*horizplane.n');
58% set(gca,'CameraPosition',align.Cst(find(config.cal.cams2use==15),:)); % view from the perspective of the camera4
59
60%   drawscene(in.Xe,Cst',Rot,42,'cloud','Graphical Output Validation: View from side',config.cal.cams2use);
61%   set(gca,'CameraTarget',mean(Cst(horizplane.idx,:)));
62%   set(gca,'CameraPosition',mean(Cst(horizplane.idx,:)+Cst(horizplane(4),:)-Cst(horizplane(1),:))');
63
64figure(61),
65% print -depsc graphevalaligned.eps
66eval(['print -depsc ', config.paths.data, 'graphevalaligned.eps'])
67
68return
Note: See TracBrowser for help on using the repository browser.