Any thoughts on how to draw these segments (ROIs) around the macula, save them, and use them among other images? Any way to adjust the size of the segments all-together from image to image if needed?
You can draw the geometries programmatically with a macro and then add the parts to ROI Manager where you can also save you geometries.
Another easy to use way (if the precision is suffcient) would be to threshold your template (eventually convert the image to 8-bit before) and then select the different parts (or all thresholded parts) and add them to the ROI manager as ImageJ ROI’s. In the following example I selected the different parts of a thresholded image ring with the wand tool - If you hold the shift key you can select multiple parts. This is useful if you want to scale the whole ring structure (geometry) later. Multiple parts added to the ROI manager can be splitted in individual parts easily with the More->Split command in the ROI Manager menu.
In the next image I used the action Edit->Selection->Scale… to increase the selected segments which then can be added again to the ROI Manager:
If you have a good predefined template you can generate with this technique easily several ROI’s which then can be measured individually (with the “Measure” command) or accessed programmatically with the ROI API.
Here is the whole structure with a scaled tiny version added (select the center option in the scale dialog!). All segments can be accessed individually:
Thank you. One other thought I had was to draw a ROI shaped as a “donut”. Is there any way to “mask” or ignore the ROI in the inner ring (circle) and only measure the outer ring (circle)?
I’m trying to set the diameter of the circles as a fraction of the distance from the macular to the edge of the optic nerve (line in image). Is there a method for adjusting this with a macro? IE inner circle diameter = 1/2 of the distance (line) and outer circle diameter = 4/3 (1.33) the distance?
For the first question have a look at the ROI manager menu where you can apply an xor operation to the ROI’s. Please select both ROI’s and apply the operation. Add the result to the ROI Manager again.
To measure the ROI’s individually simply select the ROI’s and measure.
For the second question I would recommend the use of the macro recorder to record all operations from which you can derive operations for a ImageJ macro script.
Have a look at the ImageJ macro examples and the ImageJ macro tutorials:
See also a nice programmatically solution from @oburri: