Personal tools
You are here: Home cmgui Wiki Two inner layers, choroid & retina
Views
FrontPage >> Sallys notes >>

Two inner layers, choroid & retina

last edited 5 years ago by sche155

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.

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.

7) 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.

8) Updata slave mesh on the already fitted choroid so the front of the eye is updated again.

exnode2ipdata.pl

4_projectdata_choroid_front.com

5_errorcheck_proj_choroid.com

catipdata.pl

catipxi.pl

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.

Contributing to this site

Please add to the wiki any relevant information that you think might be useful to other users of this website. For example, you might like to contribute your experiences, questions and answers.

You are encouraged to contribute to this site regardless of your level of experience. Contributions are welcomed from new and regular visitors.

If you ask a question and receive an answer from a developer you should record it in the wiki. This information is extremely useful and can help other users overcome the same problem.

See how to add and edit pages for more information.