3D caliper

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

3D caliper

Glen MacDonald-2
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]
Reply | Threaded
Open this post in threaded view
|

Re: 3D caliper

Michael Doube
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.
Reply | Threaded
Open this post in threaded view
|

Re: 3D caliper

Robert Dougherty
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]
Reply | Threaded
Open this post in threaded view
|

Re: 3D caliper

Michael Doube
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.
Reply | Threaded
Open this post in threaded view
|

Re: 3D caliper

Gabriel Landini
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
Reply | Threaded
Open this post in threaded view
|

Re: 3D caliper

Michael Schmid
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
>
Reply | Threaded
Open this post in threaded view
|

Re: 3D caliper

Thomas Boudier
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
/*******************************************************/
Reply | Threaded
Open this post in threaded view
|

ResultsTable problem

Du, Guanghua
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]
**************************************
Reply | Threaded
Open this post in threaded view
|

Re: ResultsTable problem

Gabriel Landini
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.
Reply | Threaded
Open this post in threaded view
|

Re: ResultsTable problem

Du, Guanghua
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]
**************************************
Reply | Threaded
Open this post in threaded view
|

Re: ResultsTable problem

Gabriel Landini
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.