customizing a model

Hello
i want to know if there is a possibility in anybody that we can import a scan file af a person ( for examle his vertebra) to the standing model?how?

thanks a lot

Hello,

yes it is possible and it is described in the Scaling Tutorial, Lesson 3:

http://www.anybodytech.com/fileadmin/AnyBody/Docs/Tutorials/chap10_Scaling/lesson3.html

you have to define landmarks and scale the vertebra according to the patient specific landmarks.

Thank you very much.

Hello

i read lesson 3 of the scaling tutorial but it doesn’t completely explain the way of defining a landmarker? will you plz help me at this?

& is there ant thread related to this topic?
thanks a lot

Hi,

Basically landmarks are just points on the surface of the source/target bones (can be outside of the surface too) - user needs to define them himself (can be just boundary box corners or more complex configuration). Landmarks can be abstract or represent a morphological feature (sharp corner/saddle point), or be descriptive of some anatomical features, e.g. be muscle/ligament insertion point. Generally speaking, the source landmarks will be morphed exactly into the target landmarks and everything else will be morphed using constructed transform. However, it is an extra/interpolation transform based on Radial Basis Functions (RBF) and does not guarantee the surfaces to be transformed into each other. Please note that and try to select suitable combination of landmarks.

We are working on providing more detailed guidelines for usage of the RBF transform. Unfortunately the work is still in progress.

Hope this helps.

Best regards,
Pavel

Hello
my goal is to import a scan file of L5 to standing model and analyze the force exereted on the joint.

as i read in tutorials ( scaling) , first i have to change my scan file to Stl file in mimics software .
for next step , how i should bring it to the model and replace it by L5 in anySeg folder?

thanks alot for your attention
Arezou

Hi Arezou,

Replacing the STL won’t change the model except the visualization. What you need to do is to scale L5 segment of the model using information from your STL files, i.e. landmarks. You need to redefine scaling function to be AnyFunTransform3DRBF, where you define your subject-specific transformation.

Regards,
Pavel

thanks Povel
now i have to run standing model and then in which part i can define landmarks?

thank you

Hi,
a) Find the L5 segment in the model,
b) Find the scaling function used in this segment
and c) replace by your custom scaling function, which you define wherever you want.

The tutorial that you read explains how to construct this transform.

Regards,
Pavel.

i will try this
thanks alot for your attention
best regards

Arezou

Hello

i had separated my segment L5 of MRI in mimics software , and also segment L5 in Anybody. i wanted to import them in Catia and find the shift magnitude in some way. but the scales are so different.

so i couldn’t import my segment in to standing model and actually customize it! my Any body is in V.4!
will you guide me more??

thanks a lot

Hello,

In AnyBody , we work with SI units, so our model is in meters, probably your original is in mm.

If you have specific questions, we will of course help you.

Hello
I have the same problem.
I want to import a L5 vertebra that i’ve extracted from a CT-scan image into standing model. i read scaling tutorial and found that i must find shifts of specific landmarks between L5 of anybody and my own. so i imported both of them into CATIA software. but there is a problem.
when i have both of them together in CATIA, L5 of anybody is very very smaller than L5 of CT-image and if i scale one of them to have a size similar to another, the shifts between these to vertebrae will affected from my scaling factor value.
So i want to ask that is there any solution to this problem?

Hello
I have the same problem.
I want to import a vertebra that i’ve extracted from a CT-scan image into standing model. i read scaling tutorial and found that i must find shifts of specific landmarks between vertebra of anybody and my own. so i imported both of them into a CAD software. but there is a problem.
when i have both of them together in CAD software, vertebra of anybody is very very smaller than vertebra of CT-image and if i scale one of them to have a size similar to another, the shifts between them will affected from my scaling factor value.
So i want to ask that is there any solution to this problem?

Hello,

At the moment, this process is manual, however, we are working on this to be automated in one of our next releases.
What we are doing at the present is:

  1. Scale to get the same dimensions.
  2. Shift, so that they are aligned.
  3. Apply morphing with RBF function.

You can do this also in AnyBody.
to 1: Scaling can be done by adding a 0.001 into the scaling line of the AnyDrawSurf: ScaleXYZ = 0.001*{1, 1, 1};
to 2: Shifting can be done by applying a transformation matrix with ARel and sRel…

hello
i have found the shift matrix
i wanted to ask you where i should insert it?in which path there is transformation function?

thanks a lot

Hi,

Please read the tutorial:
http://www.anybodytech.com/fileadmin/AnyBody/Docs/Tutorials/chap10_Scaling/lesson3.html

You will need to construct the matrices in a form of Points0:

Points0 =  
      {
        { 0.072462,     1.180805,    -0.036767},      // left transverse process
        { 0.072462,     1.180805,     0.036767},      // right transverse process
        { 0.044390,     1.173952,     0.000001},      // spinal process
        { 0.063322,     1.190380,    -0.022513},      // left superior articular process
        { 0.063322,     1.190380,     0.022513},      // right superior articular process
        { 0.065274,     1.155646,    -0.013893},      // left inferior articular process     
        { 0.065274,     1.155646,     0.013893},      // right inferior articular process     
        { 0.117145,     1.179924,     0.000001},      // anterior superior point of vert. body
        { 0.107595,     1.150322,     0.000001},      // anterior inferior point of vert. body
        { 0.085754,     1.186174,     0.000001},      // posterior superior point of vert. body
        { 0.081586,     1.161476,     0.000001},      // posterior inferior point of vert. body
        { 0.099929,     1.182663,    -0.023310},      // left superior lateral point of vert. body
        { 0.099929,     1.182663,     0.023310},      // right superior lateral point of vert. body           
        { 0.093791,     1.158033,    -0.023417},      // left inferior lateral point of vert. body
        { 0.093791,     1.158033,     0.023417}       // right inferior lateral point of vert. body
      };

If you have decided to use the shift matrix, like in the example, add this matrix to your Points0:
Points1 = Points0 + youshiftmatrix;

Regards,
Pavel

hello Pavel
first thanks for your attention and answers

i have read this tutorial but i wanna ask you i have to copy the code below in main code?

AnyFunTransform3DRBF <ObjectName> =
{
/RBFDef =
{
Type = RBF_Gaussian;
Param = 1;
};
/
Points0 = ;
//RBFCoefs = ;
//PolynomDegree = -1;
//PolynomCoefs = ;
//PointDescriptions = ;
//PointNames = ;
AnyMatrix randomshift =
{
{-0.003895, -0.001451, 0.001701},
{-0.008618, 0.001028, -0.002344},
{-0.001458, 0.002645, -0.002440},
{-0.002999, -0.002629, -0.001487},
{ 0.002042, -0.001206, -0.002876},
{-0.002533, 0.002108, 0.002388},
{ 0.002364, -0.001066, 0.001906},
{ 0.001912, 0.001885, -0.000878},
{ 0.002069, -0.001692, 0.001183},
{-0.002830, -0.001915, -0.002315},
{-0.002085, -0.001003, -0.002280},
{-0.001388, 0.002440, -0.002179},
{ 0.009382, 0.001788, -0.001514},
{ 0.002813, 0.002817, 0.001695},
{-0.002273, 0.002215, -0.002401}
};

  //Points1 = Points0 + randomshift;

;
};

or there is a path that i have to insert random shift matrix there?

and if the code above is correct , after running again the main code , i would get the resultes according to my new data?

thanks

Hi Arezou,
You need to have corresponding points on source and target surfaces - Points0 and Points1:

Points0 =  
      {
        { 0.099929,     1.182663,     0.023310}, 
        { 0.093791,     1.158033,    -0.023417},  
        { 0.093791,     1.158033,     0.023417}   
      };
Points1 =  
      {
        { 0.099929,     1.182663,     0.023310}, 
        { 0.093791,     1.158033,    -0.023417},  
        { 0.093791,     1.158033,     0.023417}   
      };

In the tutorial Points1 were constructed as source points + some shift (sum of matrices). It is up to you how to define the source/target points. You can define them as source + shift, or source and target set. But they have to matrices as shown in the code above (after all arithmetic operations).

Best regards,
Pavel

Hello

i wanted to ask you a question: i load a model and then run the inverse dynamycs and then in chart FX1 i get joint reaction force in 3 direction. mediolateral,proximodistal and anteroposterior!

are all these force in one plane? how i can get the normal force to the joint? to compare with pressure?

thanks