Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion src/main/java/Utilities/Counter3D.java
Original file line number Diff line number Diff line change
Expand Up @@ -726,7 +726,7 @@ public void showStatistics(boolean newRT){
float calXYZ=(float) (cal.pixelWidth*cal.pixelHeight*cal.pixelDepth);
String unit=cal.getUnit();

String[] header={"Volume ("+unit+"^3)", "Surface ("+unit+"^2)", "Nb of obj. voxels", "Nb of surf. voxels", "IntDen", "Mean", "StdDev", "Median", "Min", "Max", "X", "Y", "Z", "Mean dist. to surf. ("+unit+")", "SD dist. to surf. ("+unit+")", "Median dist. to surf. ("+unit+")", "XM", "YM", "ZM", "BX", "BY", "BZ", "B-width", "B-height", "B-depth"};
String[] header={"ID", "Volume ("+unit+"^3)", "Surface ("+unit+"^2)", "Nb of obj. voxels", "Nb of surf. voxels", "IntDen", "Mean", "StdDev", "Median", "Min", "Max", "X", "Y", "Z", "Mean dist. to surf. ("+unit+")", "SD dist. to surf. ("+unit+")", "Median dist. to surf. ("+unit+")", "Min dist. to surf. ("+unit+")", "Max dist. to surf. ("+unit+")", "Max/Min dist. to surf. (Aspect ratio)", "XM", "YM", "ZM", "BX", "BY", "BZ", "B-width", "B-height", "B-depth"};
ResultsTable rt;

if (newRT){
Expand All @@ -741,6 +741,7 @@ public void showStatistics(boolean newRT){
rt.incrementCounter();
Object3D currObj=(Object3D) obj.get(i);

rt.setValue("ID", i, i+1);
if (Prefs.get("3D-OC-Options_volume.boolean", true)) rt.setValue("Volume ("+unit+"^3)", i, currObj.size*calXYZ);
if (Prefs.get("3D-OC-Options_surface.boolean", true)) rt.setValue("Surface ("+unit+"^2)", i, currObj.surf_cal);
if (Prefs.get("3D-OC-Options_objVox.boolean", true)) rt.setValue("Nb of obj. voxels", i, currObj.size);
Expand All @@ -763,6 +764,9 @@ public void showStatistics(boolean newRT){
if (Prefs.get("3D-OC-Options_meanDist2Surf.boolean", true)) rt.setValue("Mean dist. to surf. ("+unit+")", i, currObj.mean_dist2surf);
if (Prefs.get("3D-OC-Options_SDDist2Surf.boolean", true)) rt.setValue("SD dist. to surf. ("+unit+")", i, currObj.SD_dist2surf);
if (Prefs.get("3D-OC-Options_medDist2Surf.boolean", true)) rt.setValue("Median dist. to surf. ("+unit+")", i, currObj.median_dist2surf);
if (Prefs.get("3D-OC-Options_minDist2Surf.boolean", true)) rt.setValue("Min dist. to surf. ("+unit+")", i, currObj.min_dist2surf);
if (Prefs.get("3D-OC-Options_maxDist2Surf.boolean", true)) rt.setValue("Max dist. to surf. ("+unit+")", i, currObj.max_dist2surf);
if (Prefs.get("3D-OC-Options_aspectDist2Surf.boolean", true)) rt.setValue("Max/Min dist. to surf. (Aspect ratio)", i, currObj.aspect_dist2surf);

if (Prefs.get("3D-OC-Options_COM.boolean", true)){
float[] tmpArray=currObj.c_mass;
Expand Down
44 changes: 44 additions & 0 deletions src/main/java/Utilities/Object3D.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,15 @@ public class Object3D {

/**SD of the distance to the surface (distance calibrated measure)*/
public float SD_dist2surf;

/**Min distance to the surface (distance calibrated measure)*/
public float min_dist2surf;

/**Max distance to the surface (distance calibrated measure)*/
public float max_dist2surf;

/**Max/Min dist. to surf. (Aspect ratio)*/
public float aspect_dist2surf;

/**Object3D's size (in pixels or voxels)*/
public int size;
Expand Down Expand Up @@ -230,6 +239,9 @@ private void calcStats(){
if (surf_size!=1){
for (int i=0; i<surf_size; i++) SD_dist2surf+=Math.pow(dist2surfArray[i]-mean_dist2surf, 2);
median_dist2surf=median(dist2surfArray);
min_dist2surf=min(dist2surfArray);
max_dist2surf=max(dist2surfArray);
aspect_dist2surf=(float) max_dist2surf/min_dist2surf;
SD_dist2surf=(float) Math.sqrt(SD_dist2surf/(surf_size-1));
}

Expand Down Expand Up @@ -257,4 +269,36 @@ public float median(float[] array){

return med;
}

/**Calculates the min value of a float array.
* @param array input float array.
* @return the min value of the input float array (float).
*/
public float min(float[] array){
float min=0;
int index=0;

Arrays.sort(array);

min=array[0];

return min;
}

/**Calculates the max value of a float array.
* @param array input float array.
* @return the max value of the input float array (float).
*/
public float max(float[] array){
float max=0;
int index=0;

Arrays.sort(array);

max=array[array.length-1];

return max;
}


}
14 changes: 10 additions & 4 deletions src/main/java/_3D_OC_Options.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
*/
public class _3D_OC_Options implements PlugIn{
public void run(String arg) {
String[] label=new String[16];
String[] label=new String[19];
boolean[] state=new boolean[label.length];

label[0]="Volume"; state[0]=Prefs.get("3D-OC-Options_volume.boolean", true);
Expand All @@ -51,8 +51,11 @@ public void run(String arg) {
label[11]="Mean_distance_to_surface"; state[11]=Prefs.get("3D-OC-Options_meanDist2Surf.boolean", true);
label[12]="Std_Dev_distance_to_surface"; state[12]=Prefs.get("3D-OC-Options_SDDist2Surf.boolean", true);
label[13]="Median_distance_to_surface"; state[13]=Prefs.get("3D-OC-Options_medDist2Surf.boolean", true);
label[14]="Centre_of_mass"; state[14]=Prefs.get("3D-OC-Options_COM.boolean", true);
label[15]="Bounding_box"; state[15]=Prefs.get("3D-OC-Options_BB.boolean", true);
label[14]="Min_distance_to_surface"; state[14]=Prefs.get("3D-OC-Options_minDist2Surf.boolean", true);
label[15]="Max_distance_to_surface"; state[15]=Prefs.get("3D-OC-Options_maxDist2Surf.boolean", true);
label[16]="Aspect-ratio_of_distance_to_surface"; state[16]=Prefs.get("3D-OC-Options_aspectDist2Surf.boolean", true);
label[17]="Centre_of_mass"; state[17]=Prefs.get("3D-OC-Options_COM.boolean", true);
label[18]="Bounding_box"; state[18]=Prefs.get("3D-OC-Options_BB.boolean", true);

boolean closeImg=Prefs.get("3D-OC-Options_closeImg.boolean", false);
boolean showMaskedImg=Prefs.get("3D-OC-Options_showMaskedImg.boolean", true);
Expand Down Expand Up @@ -81,7 +84,7 @@ public void run(String arg) {

GenericDialog gd=new GenericDialog("3D-OC Set Measurements");
gd.addMessage("Parameters to calculate:");
gd.addCheckboxGroup(8, 2, label, state);
gd.addCheckboxGroup(10, 2, label, state);
gd.addMessage("");
gd.addMessage("Image parameters:");
gd.addCheckbox("Close_original_images_while_processing_(saves_memory)", closeImg);
Expand Down Expand Up @@ -115,6 +118,9 @@ public void run(String arg) {
Prefs.set("3D-OC-Options_meanDist2Surf.boolean", gd.getNextBoolean());
Prefs.set("3D-OC-Options_SDDist2Surf.boolean", gd.getNextBoolean());
Prefs.set("3D-OC-Options_medDist2Surf.boolean", gd.getNextBoolean());
Prefs.set("3D-OC-Options_minDist2Surf.boolean", gd.getNextBoolean());
Prefs.set("3D-OC-Options_maxDist2Surf.boolean", gd.getNextBoolean());
Prefs.set("3D-OC-Options_aspectDist2Surf.boolean", gd.getNextBoolean());
Prefs.set("3D-OC-Options_COM.boolean", gd.getNextBoolean());
Prefs.set("3D-OC-Options_BB.boolean", gd.getNextBoolean());
Prefs.set("3D-OC-Options_closeImg.boolean", gd.getNextBoolean());
Expand Down