Browse Source

Merge branch 'master' of http://git.ius.plus/Project-Wing/fis_lib_measure

Melon 9 months ago
parent
commit
aa64528a44

+ 1 - 1
lib/process/calcuators/urm_calcuators/urm_curve_curvature_line.dart

@@ -8,7 +8,7 @@ import 'package:fis_jsonrpc/rpc.dart';
 import 'package:vid/us/vid_us_unit.dart';
 import '../calculator.dart';
 
-/// 曲线弯曲度计算
+///【TODO】  曲线弯曲度计算
 class URMCurveCurvatureLineCal extends Calculator<Trace, double> {
   URMCurveCurvatureLineCal(
     Trace ref,

+ 4 - 4
lib/process/calcuators/urm_calcuators/urm_ellipse_den_vel_measure.dart

@@ -57,16 +57,16 @@ class URMEllipseDenVelMeasureCal extends URMEllipseMeasureCal {
             feature.updateFloatValue(
                 output, math.sqrt(result.varianceDensity), output.unit);
           } else if (output.name == MeasureTerms.URMVelMax) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(output, velResult.maxVel, output.unit);
           } else if (output.name == MeasureTerms.URMVelMin) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(output, velResult.minVel, output.unit);
           } else if (output.name == MeasureTerms.URMVelMean) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(output, velResult.meanVel, output.unit);
           } else if (output.name == MeasureTerms.URMVelStd) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(
                 output, math.sqrt(velResult.varianceVel), output.unit);
           } else if (output.name == MeasureTerms.Area) {

+ 1 - 3
lib/process/calcuators/urm_calcuators/urm_ellipse_measure.dart

@@ -32,9 +32,7 @@ class URMEllipseMeasureCal extends Calculator<URMEllipseMeasure, double> {
 
       // 添加入参
       List<UrmPoint> srcDPoints = [];
-      // if (ref.feature is! EllipseFeature) {
-      //   srcDPoints = [];
-      // }
+
       for (var point in ref.feature!.innerPoints) {
         srcDPoints.add(urmApplication.localToView(point));
       }

+ 4 - 4
lib/process/calcuators/urm_calcuators/urm_ellipse_vel_measure.dart

@@ -39,16 +39,16 @@ class URMEllipseVelMeasureCal extends URMEllipseMeasureCal {
             VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMVelMax) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(output, velResult.maxVel, output.unit);
           } else if (output.name == MeasureTerms.URMVelMin) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(output, velResult.minVel, output.unit);
           } else if (output.name == MeasureTerms.URMVelMean) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(output, velResult.meanVel, output.unit);
           } else if (output.name == MeasureTerms.URMVelStd) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(
                 output, math.sqrt(velResult.varianceVel), output.unit);
           } else if (output.name == MeasureTerms.Area) {

+ 2 - 1
lib/process/calcuators/urm_calcuators/urm_location_vel.dart

@@ -8,6 +8,7 @@ import 'package:fis_measure/process/primitives/location.dart';
 
 // import 'package:fis_measure/process/primitives/urm_straightline.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
+import 'package:vid/us/vid_us_unit.dart';
 
 import '../calculator.dart';
 
@@ -42,7 +43,7 @@ class URMLocationVelCal extends Calculator<Location, double> {
 
           for (var output in ref.meta.outputs) {
             if (output.name == MeasureTerms.URMLocationVel) {
-              // output.unit = VidUsUnit.percent;
+              output.unit = VidUsUnit.mms;
               feature.updateFloatValue(
                   output, outResult.resultData, output.unit);
             }

+ 4 - 4
lib/process/calcuators/urm_calcuators/urm_rect_den_vel_measure.dart

@@ -57,16 +57,16 @@ class URMRectDenVelMeasureCal extends URMRectMeasureCal {
             feature.updateFloatValue(
                 output, math.sqrt(result.varianceDensity), output.unit);
           } else if (output.name == MeasureTerms.URMVelMax) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(output, velResult.maxVel, output.unit);
           } else if (output.name == MeasureTerms.URMVelMin) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(output, velResult.minVel, output.unit);
           } else if (output.name == MeasureTerms.URMVelMean) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(output, velResult.meanVel, output.unit);
           } else if (output.name == MeasureTerms.URMVelStd) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(
                 output, math.sqrt(velResult.varianceVel), output.unit);
           } else if (output.name == MeasureTerms.Area) {

+ 1 - 5
lib/process/calcuators/urm_calcuators/urm_rect_fractal_dim.dart

@@ -1,6 +1,5 @@
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
-import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/process/calcuators/urm_calcuators/urm_rect_measure.dart';
 import 'package:fis_measure/process/primitives/urm_measure/urm_rect_measure.dart';
@@ -32,10 +31,7 @@ class URMRectFractalDimCal extends URMRectMeasureCal {
 
       if (outResult != null) {
         final feature = ref.feature!;
-        feature.updateStringValue(
-            ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),
-            "",
-            VidUsUnit.None);
+
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMDenFractalDim) {
             output.unit = VidUsUnit.None;

+ 4 - 4
lib/process/calcuators/urm_calcuators/urm_rect_vel_measure.dart

@@ -40,16 +40,16 @@ class URMRectVelMeasureCal extends URMRectMeasureCal {
             VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.URMVelMax) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(output, velResult.maxVel, output.unit);
           } else if (output.name == MeasureTerms.URMVelMin) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(output, velResult.minVel, output.unit);
           } else if (output.name == MeasureTerms.URMVelMean) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(output, velResult.meanVel, output.unit);
           } else if (output.name == MeasureTerms.URMVelStd) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.mms;
             feature.updateFloatValue(
                 output, math.sqrt(velResult.varianceVel), output.unit);
           } else if (output.name == MeasureTerms.Area) {

+ 2 - 2
lib/process/calcuators/urm_calcuators/urm_shell_den_measure.dart

@@ -71,7 +71,7 @@ class URMShellDenMeasureCal extends URMShellMeasureCal {
             output.unit = VidUsUnit.cm2;
             feature.updateFloatValue(output, result.roiArea, output.unit);
           } else if (output.name == MeasureTerms.InURMDenROI) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.percent;
             feature.updateFloatValue(
                 output, result.inRoiDen * 100, output.unit);
           } else if (output.name == MeasureTerms.InURMDenFractalDim) {
@@ -95,7 +95,7 @@ class URMShellDenMeasureCal extends URMShellMeasureCal {
             output.unit = VidUsUnit.cm2;
             feature.updateFloatValue(output, result.inRoiArea, output.unit);
           } else if (output.name == MeasureTerms.OutURMDenROI) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.percent;
             feature.updateFloatValue(
                 output, result.outRoiDen * 100, output.unit);
           } else if (output.name == MeasureTerms.OutURMDenFractalDim) {

+ 31 - 2
lib/process/calcuators/urm_calcuators/urm_shell_den_vel_measure.dart

@@ -91,7 +91,7 @@ class URMShellDenVelMeasureCal extends URMShellMeasureCal {
             output.unit = VidUsUnit.cm2;
             feature.updateFloatValue(output, velresult.roiArea, output.unit);
           } else if (output.name == MeasureTerms.InURMDenROI) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.percent;
             feature.updateFloatValue(
                 output, denresult.inRoiDen * 100, output.unit);
           } else if (output.name == MeasureTerms.InURMDenFractalDim) {
@@ -114,11 +114,24 @@ class URMShellDenVelMeasureCal extends URMShellMeasureCal {
             output.unit = VidUsUnit.None;
             feature.updateFloatValue(
                 output, math.sqrt(denresult.inVarianceDensity), output.unit);
+          } else if (output.name == MeasureTerms.InURMVelMax) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(output, velresult.inMaxVel, output.unit);
+          } else if (output.name == MeasureTerms.InURMDenMin) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(output, velresult.inMinVel, output.unit);
+          } else if (output.name == MeasureTerms.InURMVelMean) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(output, velresult.inMeanVel, output.unit);
+          } else if (output.name == MeasureTerms.InURMVelStd) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(
+                output, velresult.inVarianceVel, output.unit);
           } else if (output.name == MeasureTerms.InArea) {
             output.unit = VidUsUnit.cm2;
             feature.updateFloatValue(output, denresult.inRoiArea, output.unit);
           } else if (output.name == MeasureTerms.OutURMDenROI) {
-            output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.percent;
             feature.updateFloatValue(
                 output, denresult.outRoiDen * 100, output.unit);
           } else if (output.name == MeasureTerms.OutURMDenFractalDim) {
@@ -141,6 +154,22 @@ class URMShellDenVelMeasureCal extends URMShellMeasureCal {
             output.unit = VidUsUnit.None;
             feature.updateFloatValue(
                 output, math.sqrt(denresult.outVarianceDensity), output.unit);
+          } else if (output.name == MeasureTerms.OutURMVelMax) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(
+                output, math.sqrt(velresult.outMaxVel), output.unit);
+          } else if (output.name == MeasureTerms.OutURMVelMin) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(
+                output, math.sqrt(velresult.outMinVel), output.unit);
+          } else if (output.name == MeasureTerms.OutURMVelMean) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(
+                output, math.sqrt(velresult.outMeanVel), output.unit);
+          } else if (output.name == MeasureTerms.OutURMVelStd) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(
+                output, math.sqrt(velresult.outVarianceVel), output.unit);
           } else if (output.name == MeasureTerms.OutArea) {
             output.unit = VidUsUnit.cm2;
             feature.updateFloatValue(output, denresult.outRoiArea, output.unit);

+ 2 - 0
lib/process/calcuators/urm_calcuators/urm_shell_density_measure.dart

@@ -35,6 +35,8 @@ class URMShellDensityMeasureCal extends URMShellMeasureCal {
       final feature = ref.feature!;
       if (ref.meta.outputs.isNotEmpty) {
         final first = ref.meta.outputs.first;
+        if (first == null) return;
+
         first.unit = VidUsUnit.percent;
         feature.updateStringValue(
             ItemOutputMeta("Placeholder", "Placeholder", VidUsUnit.None),

+ 31 - 0
lib/process/calcuators/urm_calcuators/urm_shell_vel_measure.dart

@@ -65,6 +65,37 @@ class URMShellVelMeasureCal extends URMShellMeasureCal {
           } else if (output.name == MeasureTerms.Area) {
             output.unit = VidUsUnit.cm2;
             feature.updateFloatValue(output, result.roiArea, output.unit);
+          } else if (output.name == MeasureTerms.OutURMVelMax) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(output, result.outMaxVel, output.unit);
+          } else if (output.name == MeasureTerms.OutURMVelMin) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(output, result.outMinVel, output.unit);
+          } else if (output.name == MeasureTerms.OutURMVelMean) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(output, result.outMeanVel, output.unit);
+          } else if (output.name == MeasureTerms.OutURMVelStd) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(
+                output, result.outVarianceVel, output.unit);
+          } else if (output.name == MeasureTerms.OutArea) {
+            output.unit = VidUsUnit.cm2;
+            feature.updateFloatValue(output, result.outRoiArea, output.unit);
+          } else if (output.name == MeasureTerms.InURMVelMax) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(output, result.inMaxVel, output.unit);
+          } else if (output.name == MeasureTerms.InURMVelMin) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(output, result.inMinVel, output.unit);
+          } else if (output.name == MeasureTerms.InURMVelMean) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(output, result.inMeanVel, output.unit);
+          } else if (output.name == MeasureTerms.InURMVelStd) {
+            output.unit = VidUsUnit.mms;
+            feature.updateFloatValue(output, result.inVarianceVel, output.unit);
+          } else if (output.name == MeasureTerms.InArea) {
+            output.unit = VidUsUnit.cm2;
+            feature.updateFloatValue(output, result.inRoiArea, output.unit);
           }
         }
       } else {

+ 10 - 10
lib/process/calcuators/urm_calcuators/urm_vessel_measure.dart

@@ -57,43 +57,43 @@ class URMVesselMeasureCal extends Calculator<URMVesselMeasure, double> {
             VidUsUnit.None);
         for (var output in ref.meta.outputs) {
           if (output.name == MeasureTerms.MaxVessDistance) {
-            // output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.None;
             feature.updateFloatValue(
                 output, vessMeasureResult.maxVessDistance, output.unit);
           } else if (output.name == MeasureTerms.MinVessDistance) {
-            // output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.None;
             feature.updateFloatValue(
                 output, vessMeasureResult.minVessDistance, output.unit);
           } else if (output.name == MeasureTerms.MeanVessDistacne) {
-            // output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.None;
             feature.updateFloatValue(
                 output, vessMeasureResult.meanVessDistacne, output.unit);
           } else if (output.name == MeasureTerms.StdVessDistance) {
-            // output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.None;
             feature.updateFloatValue(output,
                 math.sqrt(vessMeasureResult.varianceVessDistance), output.unit);
           } else if (output.name == MeasureTerms.MaxVessDiameter) {
-            // output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.None;
             feature.updateFloatValue(
                 output, vessMeasureResult.maxVessDiameter, output.unit);
           } else if (output.name == MeasureTerms.MinVessDiameter) {
-            // output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.None;
             feature.updateFloatValue(
                 output, vessMeasureResult.minVessDiameter, output.unit);
           } else if (output.name == MeasureTerms.MeanVessDiameter) {
-            // output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.None;
             feature.updateFloatValue(
                 output, vessMeasureResult.meanVessDiameter, output.unit);
           } else if (output.name == MeasureTerms.StdVessDiameter) {
-            // output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.None;
             feature.updateFloatValue(output,
                 math.sqrt(vessMeasureResult.varianceVessDiameter), output.unit);
           } else if (output.name == MeasureTerms.VesselCount) {
-            // output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.None;
             feature.updateFloatValue(
                 output, vessMeasureResult.vesselCount.toDouble(), output.unit);
           } else if (output.name == MeasureTerms.Distance) {
-            // output.unit = VidUsUnit.None;
+            output.unit = VidUsUnit.None;
 
             feature.updateFloatValue(output, cmlength, output.unit);
           }