4545import inra .ijpb .geometry .OrientedBox2D ;
4646import inra .ijpb .geometry .PointPair2D ;
4747import inra .ijpb .label .LabelImages ;
48+ import inra .ijpb .util .Tables ;
4849
4950/**
5051 * An analyzer class that aggregates the computation of several morphometric features
@@ -348,7 +349,7 @@ else if (contains(CENTROID))
348349 calib );
349350 }
350351
351- if (contains (ORIENTED_BOX ))
352+ if (containsAny (ORIENTED_BOX , ORIENTED_BOX_ELONGATION ))
352353 {
353354 this .fireStatusChanged (this , "Oriented Bounding Boxes" );
354355 OrientedBoundingBox2D algo = new OrientedBoundingBox2D ();
@@ -417,37 +418,37 @@ private ResultsTable populateTable(Results results)
417418 {
418419 case PIXEL_COUNT :
419420 {
420- addColumnToTable (table , "PixelCount" , results .pixelCounts );
421+ Tables . addColumnToTable (table , "PixelCount" , results .pixelCounts );
421422 break ;
422423 }
423424 case AREA :
424425 {
425426 double [] areas = Stream .of (results .intrinsicVolumes )
426427 .mapToDouble (res -> res .area )
427428 .toArray ();
428- addColumnToTable (table , "Area" , areas );
429+ Tables . addColumnToTable (table , "Area" , areas );
429430 break ;
430431 }
431432 case PERIMETER :
432433 {
433434 double [] perimeters = Stream .of (results .intrinsicVolumes )
434435 .mapToDouble (res -> res .perimeter )
435436 .toArray ();
436- addColumnToTable (table , "Perimeter" , perimeters );
437+ Tables . addColumnToTable (table , "Perimeter" , perimeters );
437438 break ;
438439 }
439440 case CIRCULARITY :
440441 {
441442 double [] circularities = IntrinsicVolumes2DUtils .computeCircularities (results .intrinsicVolumes );
442- addColumnToTable (table , "Circularity" , circularities );
443+ Tables . addColumnToTable (table , "Circularity" , circularities );
443444 break ;
444445 }
445446 case EULER_NUMBER :
446447 {
447448 double [] eulerNumbers = Stream .of (results .intrinsicVolumes )
448449 .mapToDouble (res -> res .eulerNumber )
449450 .toArray ();
450- addColumnToTable (table , "EulerNumber" , eulerNumbers );
451+ Tables . addColumnToTable (table , "EulerNumber" , eulerNumbers );
451452 break ;
452453 }
453454 case BOUNDING_BOX :
@@ -494,7 +495,7 @@ private ResultsTable populateTable(Results results)
494495 Ellipse elli = results .ellipses [i ];
495496 elong [i ] = elli .radius1 () / elli .radius2 ();
496497 }
497- addColumnToTable (table , "Ellipse.Elong" , elong );
498+ Tables . addColumnToTable (table , "Ellipse.Elong" , elong );
498499 break ;
499500 }
500501 case CONVEXITY :
@@ -534,15 +535,15 @@ private ResultsTable populateTable(Results results)
534535 double [] elongations = Stream .of (results .orientedBoxes )
535536 .mapToDouble (obox -> obox .length () / obox .width ())
536537 .toArray ();
537- addColumnToTable (table , "OBox.Elongation" , elongations );
538+ Tables . addColumnToTable (table , "OBox.Elongation" , elongations );
538539 break ;
539540 }
540541 case GEODESIC_DIAMETER :
541542 {
542543 double [] diameter = Stream .of (results .geodDiams )
543544 .mapToDouble (gdData -> gdData .diameter )
544545 .toArray ();
545- addColumnToTable (table , "GeodesicDiameter" , diameter );
546+ Tables . addColumnToTable (table , "GeodesicDiameter" , diameter );
546547 break ;
547548 }
548549 case TORTUOSITY :
@@ -552,7 +553,7 @@ private ResultsTable populateTable(Results results)
552553 {
553554 tortuosity [i ] = results .geodDiams [i ].diameter / results .maxFeretDiams [i ].diameter ();
554555 }
555- addColumnToTable (table , "Tortuosity" , tortuosity );
556+ Tables . addColumnToTable (table , "Tortuosity" , tortuosity );
556557 break ;
557558 }
558559 case MAX_INSCRIBED_DISK :
@@ -582,7 +583,7 @@ private ResultsTable populateTable(Results results)
582583 {
583584 elong [i ] = results .geodDiams [i ].diameter / (results .inscrDiscs [i ].getRadius () * 2 );
584585 }
585- addColumnToTable (table , "GeodesicElongation" , elong );
586+ Tables . addColumnToTable (table , "GeodesicElongation" , elong );
586587 break ;
587588 }
588589 default :
@@ -596,24 +597,6 @@ private ResultsTable populateTable(Results results)
596597 return table ;
597598 }
598599
599- private static final void addColumnToTable (ResultsTable table ,
600- String colName , double [] values )
601- {
602- for (int i = 0 ; i < values .length ; i ++)
603- {
604- table .setValue (colName , i , values [i ]);
605- }
606- }
607-
608- private static final void addColumnToTable (ResultsTable table ,
609- String colName , int [] values )
610- {
611- for (int i = 0 ; i < values .length ; i ++)
612- {
613- table .setValue (colName , i , values [i ]);
614- }
615- }
616-
617600
618601 /**
619602 * Concatenates the results of the analyzes.
0 commit comments