-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ENH: Ability to determine maximum and minimum feret diameter of features. #944
Comments
@StopkaKris From this page: https://en.wikipedia.org/wiki/Feret_diameter The Feret diameter should be calculated along a particular axis. Do we want to store all the Feret diameters for a given bounding box? This would give the X, Y, Z, and space diagonal values. Given our Image Geom (and RectGridGeom) have orthogonal axis, there are certain combinations that would give the same results. Thinking more about this, there are 7 total measurements that might be interesting:
I started to code this up but ran into these questions. |
Hi @imikejackson, thanks for looking into this so quickly. I think the measurements that would be useful (in order from most useful to least useful) for each feature would be:
It seems it would be simple to also include the three face diagonals and space diagonal, so maybe the fitler into which this is implemented can have check boxes for the user to select? I can also provide a .dream3d file of a 3D microstructure model with twins for testing purposes if you need. Best regards, |
@StopkaKris Having a data file to test against would be great. Here is a screen shot of the filter results as it stands now. I used the "Create Element Array from Feature Array" filter to be able to color the data. The order in the 7 components are as above: X Axis I just used the (02) Image Segmentation prebuilt pipeline for an initial test. |
- BlueQuartzSoftware#944 Signed-off-by: Michael Jackson <[email protected]>
- BlueQuartzSoftware#944 Signed-off-by: Michael Jackson <[email protected]>
Below is a microstructure model with twins, in which FeatureId=12 corresponds to the second ParaView screenshot I posted above: microstructure_with_twins.zip. To clarify your comment above: i) would the "XYZ Space Diagonal" measure be the longest distance of a feature (~201 for the twin shown above), and ii) is it possible to also include the shortest distance of a feature (~7.08 for the twin shown above)? |
@StopkaKris This is what I am getting for that feature. There would need to be some sort of transformation to align the thickness with an axis in order to get the values that you are seeing. Maybe using the morphological orientation from the shape description, you could use the major axis as the primary axis and do a transform? |
Here is all the data:
|
I think it would be a hassle to perform a transform based on the morphological orientation, as this may differ for each feature of interest. I think the X, Y, and Z (first three) measures you show here are useful, but I am unsure about the other four. And since they are just combinations of the first three, the users can calculate these themselves. For the feret diameter/longest distance measure of a feature: can we set up something where we identify all boundary cells in a feature (in order to minimize the computational burden of this calculation) and then find the largest distance between these cells? However, I don't see a good way to compute the "thinnest" measure of a feature, such as an annealing twin. I think the only option would be to define an arbitrarily rotated bounding box of each feature, and then extract the minor axis, as is done in the ParaView At the least, can we look into implementing the longest distance measure of a feature as described above? ParaView reports this as 201.125 for the twin shown above, and Feret Diameter[3:5] are in the ballpark, but are just different measures altogether. |
- BlueQuartzSoftware#944 Signed-off-by: Michael Jackson <[email protected]>
- BlueQuartzSoftware#944 Signed-off-by: Michael Jackson <[email protected]>
Is there an existing plan for this?
Description of the Feature, Filter, or Functionality?
This is a follow up to a previous post on the Google help page. Is it possible to implement a filter (or perhaps add this functionality to the
Find Feature Shapes
filter) to determine the feret diameter of features? Currently, we can compute the equivalent diameter and Axis lengths/Euler angles of the "best-fit" ellipsoid. This works well for ellipsoidal grains but not for other features, such as lack of fusion (LOF) pores in metals/alloys (first image below) or thin annealing twins (second image below).The
Compute Feature Corners
filter writes six values to the Features.csv file that users can then use to manually determine the XYZ bounding box of each feature, but this would not work to measure the feret diameter of the annealing twin in the second screenshot below, since these are oriented arbitrarily within models. Ideally, this functionality would report the maximum and minimum feret diameter of each feature.Version
7.0.x (DREAM3DNX beta)
What section did you foresee your suggestion falling in? [Further details may be required during triage process]
No response
High Level Steps To Implement
No response
Anything else?
No response
Code of Conduct
The text was updated successfully, but these errors were encountered: