Subversion Repositories seema-scanner

Rev

Rev 241 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 241 Rev 243
Line 130... Line 130...
130
 
130
 
131
% show found markers in initial alignment
131
% show found markers in initial alignment
132
figure;
132
figure;
133
hold('on');
133
hold('on');
134
for i=1:nSubScans
134
for i=1:nSubScans
135
    % fix Ri to be orthogonal
-
 
136
    [U,~,V] = svd(initialAlign(i).Rotation);
-
 
137
    Ri = U*V';
-
 
138
    initialAlign(i).Rotation = Ri;
-
 
139
    
135
   
140
    % bring point cloud into initial alignment
136
    % bring point cloud into initial alignment
141
    pcFileName = fullfile(alnFilePath, initialAlign(i).FileName);
137
    pcFileName = fullfile(alnFilePath, initialAlign(i).FileName);
142
    pc = pcread(pcFileName);
138
    pc = pcread(pcFileName);
143
    tform = affine3d([Ri' [0;0;0]; initialAlign(i).Translation' 1]);
139
%     tform = affine3d([Ri' [0;0;0]; initialAlign(i).Translation' 1]);
144
    pcg = pctransform(pc, tform);
140
%     pcg = pctransform(pc, tform);
-
 
141
    pcg = pointCloud(pc.Location * initialAlign(i).Rotation' + initialAlign(i).Translation', 'Color', pc.Color);
145
   
142
   
146
    pcshow(pcg);
143
    pcshow(pcg);
147
    xlabel('x');
144
    xlabel('x');
148
    ylabel('y');
145
    ylabel('y');
149
    zlabel('z');
146
    zlabel('z');
Line 195... Line 192...
195
    Ea = E{i}*Ri' + repmat(Ti', size(E{i}, 1), 1);
192
    Ea = E{i}*Ri' + repmat(Ti', size(E{i}, 1), 1);
196
    
193
    
197
    % bring point cloud into optimized alignment
194
    % bring point cloud into optimized alignment
198
    pcFileName = fullfile(alnFilePath, initialAlign(i).FileName);
195
    pcFileName = fullfile(alnFilePath, initialAlign(i).FileName);
199
    pc = pcread(pcFileName);
196
    pc = pcread(pcFileName);
200
    tform = affine3d([Ri' [0;0;0]; initialAlign(i).Translation' 1]);
197
%     tform = affine3d([Ri' [0;0;0]; initialAlign(i).Translation' 1]);
201
    pcg = pctransform(pc, tform);
198
%     pcg = pctransform(pc, tform);
-
 
199
    pcg = pointCloud(pc.Location * alignment(i).Rotation' + alignment(i).Translation', 'Color', pc.Color);
202
   
200
       
203
    pcshow(pcg);
201
    pcshow(pcg);
204
    xlabel('x');
202
    xlabel('x');
205
    ylabel('y');
203
    ylabel('y');
206
    zlabel('z');
204
    zlabel('z');
207
    
205