|
@@ -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);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|