subtracting two asymmetric 3D point clouds

I have 3D point cloud and I want to subtract one from other. But these point cloud locations are assymetric. I want to subtract the z- coordinate of the corresponding points from both the point clouds. When I mean corresponding points I mean the XYpoints which match each other on the point cloud. The variables are attached below. I want to subtract beforeDelam.Location from alignedafterdelam.Location but i get the error that matrix is unsymmetric. How can I proceed? I thought that I can create meshes of these two point clouds and subtract it from each other. But is there any other easier way. Looking forward to your help.

2 Comments

What XYPoints? And what Z coordinates? After reading in the mat file we just get 3 sets of 1-D arrays of 6 elements each.
s=load('pc var.mat')
beforeDelam: [6x1 uint32]
afterDelam: [6x1 uint32]
tform: [1x1 affine3d]
alignedafterDelam: [6x1 uint32]
rmserror: 0.304021418094635
I can do the subtraction
output = double(s.beforeDelam) - double(s.afterDelam)
and get an output
output =
0
0
0
0
-1
0
with no error at all. Please clarify.
Snehalatha
Snehalatha on 21 Jul 2015
Edited: Snehalatha on 21 Jul 2015
Hi Image analyst, if you go inside the point cloud variable you'll notice the property column. There you find something called location which is array i want to subtract. beforeDelam has dimensions 203851x3 and alighnedafterDelam has 203675x3. I want to subtract the 3rd column of alignedafterDelam.Location(:,:,1) from 3rd column of beforeDelam.Location(:,:,1). I have attached thescreenshot of the error i received.

Sign in to comment.

Answers (0)

Asked:

on 20 Jul 2015

Edited:

on 22 Jul 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!