Personal tools
You are here: Home / cmgui / Wiki / Two inner layers, choroid & retina
Navigation
Log in


Forgot your password?
 

Two inner layers, choroid & retina

The same steps was performed to create and fit the inner two layers of the eyeball. The inital mesh created was smaller with realistic thickness so that the three layers will be in contact.

Once the inital mesh was created and the 3 layers are in contact, the same steps were performed as indicated in "Fit Sclera.":http://www.cmiss.org/cmgui/wiki/FitTheScleraCorneaAndTheLens

However, many steps can be prevented as they are repeated, eg: the host mesh is reused, don't need to create a new host.

  • The inital mesh (the two layers) was converted into ipfiles. (3_convert)
  • The same datapoints used in Sclera was projected onto the new layer. (4_projectdata)
  • Read in the host mesh used in Sclera, landmark points (from 4) and target points and perform fitting. (6_fitting)
  • Final step is to update the slave mesh (ie: initial mesh). (8_update_slave)

Note that, this was done for the 2 layers (retina and choroid) seperately.

** Iris & Ciliary Body **

The 2 layers was fine and easy to fit. This is because the datapoints can just project to the external face of the new initial mesh. After fitting, updating the slave mesh will update the WHOLE mesh and so the whole layer (including the internal layer) will move to fit the datapoints.

Now with the front of the choroid layer, the iris and ciliary body, I had digitsed the datapoints for these two specific structures. However, there were problems with fitting this beacuse the layer is so thin, the datapoints will NOT project to the face they are suppose to.

So, I had to:

  1. Seperate the faces, ie: group the front, and back faces into 2 different groups.
  2. Generate new exdata files so the datapoints I digitised are grouped into 2 different groups as well. (frontdata, backdata.exdata)
  3. Generate ipdata files using exnoda2ipdata.pl (reading in exdata and exporting ipdata) This is a universal perl script that can convert datafiles with coordinates going downwards OR across.
  4. Project the datapoints onto its corresponding faces, so I had two projectdata files. One to read in the front data and project to front face, and another for the back datapoints. (4_projectdata_choroid_front.com)
  5. Error check to see if the different sets of datapoints are projected to the two different faces. (5_errorcheck_proj_choroid.com)
  6. Use catipxi.pl and catipdata.pl to put the landmark.ipdata and ipxi files together to use in fit.

Remember to use catipdata.pl on the 2 seperate set of target datapoints (digitsed) as well because the order must match those of the landmark points, otherwise it won't fit properly.

  1. Once that is done, you can perform normal fitting with the new set of target and landmark datapoints. Now, we do not want to move the remaining choroid layer that was fitted already, so we need to refine the host mesh, and have fine elements that cover the front of the eye and the elements that doesn't are fixed. So only the elements that cover the front of the eye will move in fitting.
  2. Updata slave mesh on the already fitted choroid so the front of the eye is updated again.

<a href="exnode2ipdata.pl">exnode2ipdata.pl</a>

<a href="4_projectdata_choroid_front.com">4_projectdata_choroid_front.com</a>

<a href="5_errorcheck_proj_choroid.com">5_errorcheck_proj_choroid.com</a>

<a href="catipdata.pl">catipdata.pl</a>

<a href="catipxi.pl">catipxi.pl</a>

** Retina **

Make sure to keep the discretisation of the retina mesh same as the choroid mesh, ie: 16 and 16, otherwise the layers won't match up and fit properly.