Re: Least squares fit of a model to a skeleton consisting out of 3D points. [message #64086 is a reply to message #63982] |
Thu, 27 November 2008 05:53   |
Jeremy Bailin
Messages: 618 Registered: April 2008
|
Senior Member |
|
|
On Nov 26, 3:40 am, Johan <jo...@jmarais.com> wrote:
> On Nov 24, 4:35 pm, Wox <s...@nomail.com> wrote:
>
>> On Mon, 24 Nov 2008 17:22:53 +0100, Wox <s...@nomail.com> wrote:
>>> X=[X,Y,Z] ; (you need to extract the seperate X, Y and Z in your user
>>> routine)
>>> Y=replicate(1,n_elements(X))
>
>> Woops, redefined X :-). I mean Y=replicate(1,n3Dpoints).
>
> Thank you, it seems that krellipsoidfit.pro works rather well. I do
> have another question regarding this and will appreciate if can advise
> me.
>
> I need to get the 3 angles and axis lengths and use the following code
> to get it from the given eigenvalues (evals) and eigenvectors (evec):
>
> semia = sqrt(evals[0]) * 2.0
> semib = sqrt(evals[1]) * 2.0
> semic = sqrt(evals[2]) * 2.0
>
> a = semia * 2.0
> b = semib * 2.0
> c = semic * 2.0
> semiAxes = [semia, semib, semic]
> axes = [a, b, c]
>
> eigenvector = evec[*,0]
> eigenvector2 = evec[*,1]
> eigenvector3 = evec[*,2]
>
> orientation1 = atan(eigenvector1[1], eigenvector1[0])*!RADEG
> orientation2 = atan(eigenvector2[1], eigenvector2[0])*!RADEG
> orientation3 = atan(eigenvector3[1], eigenvector3[0])*!RADEG
> angles = [orientation1, orientation2, orientation3]
>
> Is this correct or do I need made some adjustments, especially to the
> orientation?
>
> Thanks
> Johan Marais
That does indeed give you 3 angles, but it doesn't fully specify the
orientation. Which angles are you looking for?
Incidentally, I'm not quite sure why you have that factor of 2 in the
definition of semia etc., but I suppose it depends what went into the
matrix you're diagonalizing...
-Jeremy.
|
|
|