Hello,
Is there a plugin or other method for 3D caliper diameter? I have someone needing to get the diameter of Purkinje dendrites and of glia processes. I'd like to get lateral and axial diameters, or maximum lateral diameter. Thanks, Glen Glen MacDonald Core for Communication Research Virginia Merrill Bloedel Hearing Research Center Box 357923 University of Washington Seattle, WA 98195-7923 USA (206) 616-4156 [hidden email] |
I'd like to know too, especially if it could be applied to a List<Point3f> surface mesh.
Mike ________________________________________ Subject: 3D caliper Hello, Is there a plugin or other method for 3D caliper diameter? I have someone needing to get the diameter of Purkinje dendrites and of glia processes. I'd like to get lateral and axial diameters, or maximum lateral diameter. |
In reply to this post by Glen MacDonald-2
Glen,
You might look at the local thickness plugins on my site. Bob On Jan 15, 2010, at 10:57 AM, Glen MacDonald wrote: > Hello, > Is there a plugin or other method for 3D caliper diameter? I have someone needing to get the diameter of Purkinje dendrites and of glia processes. I'd like to get lateral and axial diameters, or maximum lateral diameter. > > Thanks, > Glen > > > Glen MacDonald > Core for Communication Research > Virginia Merrill Bloedel Hearing Research Center > Box 357923 > University of Washington > Seattle, WA 98195-7923 USA > (206) 616-4156 > [hidden email] Robert Dougherty, Ph.D. President, OptiNav, Inc. 4176 148th Ave. NE Redmond, WA 98052 (425)891-4883 FAX (425)467-1119 www.optinav.com [hidden email] |
For local diameter, Local Thickness is great. Bob, I salute you.
What about the minimum oriented bounding box, or the 3D Feret diameter? It's trivial to get a bounding box in the x, y and z axes, and you can also work out some rotated coordinate system (e.g. from moments of inertia or best-fit ellipsoid) that describes oriented axes and work out the maximum distance from the centroid in each of the rotated axes. How might one find a bounding box that has the least volume, or shortest sum of edge lengths, or a non-brute-force Feret? Mike ________________________________________ From: ImageJ Interest Group [[hidden email]] On Behalf Of Robert Dougherty Subject: Re: 3D caliper Glen, You might look at the local thickness plugins on my site. Bob On Jan 15, 2010, at 10:57 AM, Glen MacDonald wrote: > Hello, > Is there a plugin or other method for 3D caliper diameter? I have someone needing to get the diameter of Purkinje dendrites and of glia processes. I'd like to get lateral and axial diameters, or maximum lateral diameter. |
On Friday 15 January 2010, Mike Doube wrote:
> How might one find a bounding box that has the least volume, or shortest > sum of edge lengths, or a non-brute-force Feret? This seems one way for the bounding box: http://www.mlahanas.de/CompGeom/opt_bbox.htm Here is a presentation with various methods: http://www.csam.ucl.ac.be/news/slides/gorissen09.pdf Not sure what is the best method to find the maximum Feret, but if one is tempted to do it brute force, one should be able to save a lot of time by computing the convex hull first, as the max Feret *has* to be in the convex hull (if I am not wrong). And no, I do not think brute force is a good idea. Cheers, Gabriel |
Hi,
my 3 cents (though I am clearly not an expert on this): One way for an aproximation of maximum Feret might be an approach similar to that used by ImageJ for minimum Feret: for a list of spatial directions, loop over all points of the convex hull and calculate the projection onto the direction. Get the maximum and minimum of these projections values for all points; the difference is the Feret diameter in that direction. If you want 1% accuracy, no direction must be more than arccos(0.99)=0.14 radians from a direction in the list of directions. I guess that a list of about 150 directions should be enough for this. If your convex hull has more than a few hundred points, this method should be faster than the brute force method with a nested list - but it is an approximation... Michael ___________________________________________________________________ On Sat, January 16, 2010 17:31, Gabriel Landini wrote: > On Friday 15 January 2010, Mike Doube wrote: >> How might one find a bounding box that has the least volume, or shortest >> sum of edge lengths, or a non-brute-force Feret? > > This seems one way for the bounding box: > http://www.mlahanas.de/CompGeom/opt_bbox.htm > > Here is a presentation with various methods: > http://www.csam.ucl.ac.be/news/slides/gorissen09.pdf > > Not sure what is the best method to find the maximum Feret, but if one is > tempted to do it brute force, one should be able to save a lot of time by > computing the convex hull first, as the max Feret *has* to be in the > convex > hull (if I am not wrong). And no, I do not think brute force is a good > idea. > > Cheers, > > Gabriel > |
Hi,
I have implemented the max feret distance for 3D objects (by brute force ;-) ), check the roimanager3d in : http://imagejdocu.tudor.lu/doku.php?id=plugin:morphology:3d_binary_morphological_filters:start use first 3d-oc to label your objects and then use the "add image" command to add your labeled objects to the 3dmanager, then 3d measure. a new version is coming soon, with the 3d mas radial distance, the maximum distance between the center and the border. Thomas Michael Schmid a écrit : > Hi, > > my 3 cents (though I am clearly not an expert on this): > > One way for an aproximation of maximum Feret might be an approach similar > to that used by ImageJ for minimum Feret: for a list of spatial > directions, loop over all points of the convex hull and calculate the > projection onto the direction. > Get the maximum and minimum of these projections values for all points; > the difference is the Feret diameter in that direction. > > If you want 1% accuracy, no direction must be more than arccos(0.99)=0.14 > radians from a direction in the list of directions. I guess that a list of > about 150 directions should be enough for this. If your convex hull has > more than a few hundred points, this method should be faster than the > brute force method with a nested list - but it is an approximation... > > Michael > ___________________________________________________________________ > > On Sat, January 16, 2010 17:31, Gabriel Landini wrote: >> On Friday 15 January 2010, Mike Doube wrote: >>> How might one find a bounding box that has the least volume, or shortest >>> sum of edge lengths, or a non-brute-force Feret? >> This seems one way for the bounding box: >> http://www.mlahanas.de/CompGeom/opt_bbox.htm >> >> Here is a presentation with various methods: >> http://www.csam.ucl.ac.be/news/slides/gorissen09.pdf >> >> Not sure what is the best method to find the maximum Feret, but if one is >> tempted to do it brute force, one should be able to save a lot of time by >> computing the convex hull first, as the max Feret *has* to be in the >> convex >> hull (if I am not wrong). And no, I do not think brute force is a good >> idea. >> >> Cheers, >> >> Gabriel >> > > -- /**********************************************************/ Thomas Boudier, MCU Université Pierre et Marie Curie, IFR 83. Bat B 7ème étage, porte 706D, Jussieu. Tel : 01 44 27 20 13 Fax : 01 44 27 22 91 /*******************************************************/ |
Dear user list,
I am developing a plugin in ImageJ. when I am using the ResultsTable.getValue(String columnname, int rowi)function, I get the following error: java.lang.IllegalArgumentException: "CoreZ" column not found ("CoreZ" is the name of the colum #7 I defined, and has shown up in the result table) By the way, in my resultstable, there is a label column (#2) which contains String. is that the reason? Thx...in advance Happy new year. best wishes! ************************************** Guanghua Du, PhD James-Franck Str. 1 Physik Dept, E12, TUM 85748, Garching b. Muenchen Germany Tel:+49-89-28914286 E-mail: [hidden email] ************************************** |
On Monday 18 Jan 2010 16:22:17 you wrote:
> By the way, in my resultstable, there is a label column (#2) which > contains String. is that the reason? Most probably. I think that currently only one of the Results table columns can contain strings. G. |
Hi, Gabriel,
Thanks for your response. my string column is the only one label column, i.e. the only column contains string. I also tried getValue( int columnNum, int RowNum), this works. I had thought the reason might be the string contains space, but after I change the string to word "image" it also does not work. 1 HeLa sz072007_OTR34_07_Cy3_0min 53BP1 DeCV_Cell1.tif 1 25 10 10473.281 48.639 34.137 23.152 102 6503.250 17172 10124 Gabriel Landini wrote: > On Monday 18 Jan 2010 16:22:17 you wrote: >> By the way, in my resultstable, there is a label column (#2) which >> contains String. is that the reason? > > Most probably. I think that currently only one of the Results table columns > can contain strings. > > G. -- best wishes! ************************************** Guanghua Du, PhD James-Franck Str. 1 Physik Dept, E12, TUM 85748, Garching b. Muenchen Germany Tel:+49-89-28914286 E-mail: [hidden email] ************************************** |
On Tuesday 19 Jan 2010 08:23:24 you wrote:
> my string column is the only one label column, i.e. the only column > contains string. I also tried getValue( int columnNum, int RowNum), this > works. Oh, sorry I misundertood, I thought you wanted a 2nd column. The method to get the string (i.e. the "label") of the table is (assuming that rt is your Results table): rt.getLabel(int row) Have a look at the API which is quite useful: http://rsb.info.nih.gov/ij/developer/api/ij/measure/ResultsTable.html#getLabel(int) Cheers G. |
Free forum by Nabble | Edit this page |