PDA

View Full Version : Registration/Reorientation !

sensibly_insane
02-May-2007, 14:20
Hi All,
I wonder if you could help me with my problem.

Given a 3D polygonal model A and its trnasofrmed version B(generated from subjecting A to rotation,translation,scaling and cropping),I want to reorientate the 3D model to its original location as of A.To me,one possible solution to this problem may be ICP (iterative closest point) algorithm.

Any suggestions regarding the solution or where to seek help from,

Best Regards,
Sensibly_insane,
University of Surrey,U.K.

991060
02-May-2007, 17:41
How about finding the transformation matrix through vertices before and after transformation, then isolating translation/rotation/scaling/cropping components?

dnavas
03-May-2007, 15:10
Interesting problem, and, as I used it in an interview yesterday, I should probably say something :)

First, presumably that transformation history (and/or correspondence between vertices) doesn't exist, or the problem would be trivial.

As I was reading the description, I figured that you'd find the center of mass, translate the models so that their c.o.m correspond, rotate the model so that the (say) farthest point's angle from c.o.m are the same (possibly iterating over several stops, if more than one point is 'farthest'), and there you have your models aligned.

I really hope it's clear where the cropping took place, as otherwise I really have no clue. But, if you can determine a set of connected edges that haven't been mangled, presumably the problem is a search where the edge angles and ratios are values being searched. Not sure of an algorithm, but, *maybe* that helps. Sadly, I am neither a search guy nor a graphics guy -- just having fun with an interesting problem.

BoL,
-Dave

nAo
04-May-2007, 09:24
Compute both models inertia tensor Ta and Tb and your transform M should be (Ta^-1)*Tb.

Xmas
04-May-2007, 10:02
What exactly does "cropping" mean wrt 3D models?

dnavas
04-May-2007, 14:59
Compute both models inertia tensor Ta and Tb and your transform M should be (Ta^-1)*Tb.

I don't really grok tensors (having never used 'em), but from a cursory inspection,
that sounds about right, and a pretty nifty trick (particularly as it's math heavy, light on comparisons, and doesn't appear to degenerate).

'course it still doesn't handle the cropping :)

As Xmas asked, the answer may depend on how cropping is managed. If outgoing edges of uncropped vertices are preserved, presumably you can build a database of sets of angles between adjacent edges -- maybe create buckets by number of angles in your set, and then start with the buckets with the least number of items therein.... 'course, that's fairly branchy, and maybe nAo has a cute thought there too :)

-Dave