Browse Source

AI诊断,dll更新

Jeremy 2 years ago
parent
commit
22ffba322e
1 changed files with 15 additions and 16 deletions
  1. 15 16
      Carotid/Utilities/GetModelVesselAndPlaque.cs

+ 15 - 16
Carotid/Utilities/GetModelVesselAndPlaque.cs

@@ -316,21 +316,17 @@ namespace WingAIDiagnosisService.Carotid.Utilities
         public bool DoDetect(byte[][] modelSource, ModelSize modelSize)
         {
             _modelSize = modelSize;
-            _image = RawImage.ReadRawImageFromFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "80d9c34c23d943cea6206d1a6a128d83-142.txt"));
-            var diagResult2 = _diagSystem.EvaluateOneImage(_image);
-            Logger.WriteLineInfo($"{Newtonsoft.Json.JsonConvert.SerializeObject(diagResult2)}");
-
             try
             {
                 var vesselList = new List<OneImageArteryContours>();
                 var plaqueList = new List<OnePlaqueContours>();
                 // 每隔3帧算一次
                 int modelImgCount = _modelSize.ModelLengthZ;
-                int interval = 1;
+                int interval = 3;
                 for (int ni = 0; ni < modelImgCount; ni += interval)
                 {
                     // 复制出待测图像
-                    _image.CopyFrom(modelSource[ni], _modelSize.ModelLengthX, _modelSize.ModelLengthY);
+                    _image.CopyFrom(modelSource[ni], _modelSize.ModelLengthX, _modelSize.ModelLengthY, 0);
                     // 输入待测图像进行检测
                     var diagResult = _diagSystem.EvaluateOneImage(_image);
                     if (diagResult == null)
@@ -356,16 +352,19 @@ namespace WingAIDiagnosisService.Carotid.Utilities
                             // 将当前血管上找到的斑块 转成所需的格式 放到plaqueList里
                             foreach (var detectedObject in organ.DetectedObjects)
                             {
-                                var onePlaque = GenCntkDetectResult(detectedObject.Confidence, CntkLabelType.LabelOne,
-                                    detectedObject.BoundingBox, detectedObject.Contours[0]);
-                                OnePlaqueContours onePlaqueContours = new OnePlaqueContours();
-                                onePlaqueContours.ArteryContour = oneArtery.Contour;
-                                onePlaqueContours.ImageRect = GetExtendRect(oneArtery.Rect, new Size(_image.Width, _image.Height));
-                                onePlaqueContours.PlaqueContour = onePlaque.Contour;
-                                onePlaqueContours.Credibility = onePlaque.Credibility;
-                                onePlaqueContours.SerialNumber = ni;
-                                onePlaqueContours.PlaqueArea = GetArea(onePlaque.Contour);
-                                plaqueList.Add(onePlaqueContours);
+                                if (detectedObject.Contours.Length > 0)
+                                {
+                                    var onePlaque = GenCntkDetectResult(detectedObject.Confidence, CntkLabelType.LabelOne,
+                                        detectedObject.BoundingBox, detectedObject.Contours[0]);
+                                    OnePlaqueContours onePlaqueContours = new OnePlaqueContours();
+                                    onePlaqueContours.ArteryContour = oneArtery.Contour;
+                                    onePlaqueContours.ImageRect = GetExtendRect(oneArtery.Rect, new Size(_image.Width, _image.Height));
+                                    onePlaqueContours.PlaqueContour = onePlaque.Contour;
+                                    onePlaqueContours.Credibility = onePlaque.Credibility;
+                                    onePlaqueContours.SerialNumber = ni;
+                                    onePlaqueContours.PlaqueArea = GetArea(onePlaque.Contour);
+                                    plaqueList.Add(onePlaqueContours);
+                                }
                             }
                         }
                     }