public override bool Execute(List <NamedData> data, string fileName) { Image <Gray, ushort>[] rawImages = null; Image <Gray, byte>[] maskImages = null; BorderPointArrays borderPointarrays = null; try { if (!IsInitialized) { _logger?.ErrorLog("It is not initialized.", ClassName); return(false); } int imageCounter = LoadNamedData(data, ref borderPointarrays, ref rawImages, ref maskImages); if (imageCounter == 0) { _logger?.InfoLog("No images were loaded from dynamicresult", ClassName); } for (int m = 0; m < imageCounter; m++) { } return(true); } catch (Exception ex) { _logger?.ErrorLog($"Exception occured: {ex}", ClassName); return(false); } finally { foreach (var item in rawImages) { if (item != null) { item.ROI = _fullROI; } } foreach (var item in maskImages) { if (item != null) { item.ROI = _fullROI; } } } }
public BorderPointArrays GetBorderPointArrays(string name, List <NamedData> data) { BorderPointArrays arrays = null; foreach (NamedData item in data) { if (item.AsBorderPointArraysNamedData() != null) { if (item.AsBorderPointArraysNamedData().Name == name) { arrays = item?.AsBorderPointArraysNamedData(); } } } return(arrays); }
protected virtual int LoadNamedData(List <NamedData> data, ref BorderPointArrays borderPoints, ref Image <Gray, ushort>[] rawImages, ref Image <Gray, byte>[] maskImages) { rawImages = GetEmguUShortImages("RawImages", data); int imageCounterRaw = rawImages?.Length ?? 0; maskImages = GetEmguByteImages("MaskImages", data); int imageCounterMask = maskImages?.Length ?? 0; borderPoints = GetBorderPointArrays("BorderPointArrayList", data); if ((imageCounterMask != imageCounterRaw) || (imageCounterRaw == 0) || (imageCounterRaw != borderPoints.Count)) { _logger?.InfoLog($"Input and mask image number is not the same!", ClassName); return(0); } return(imageCounterRaw); }
public override bool Execute(List <NamedData> data, string fileName) { Image <Gray, ushort>[] rawImages = null; Image <Gray, byte>[] maskImages = null; BorderPointArrays borderPointarrays = null; string additionalExtensionName = string.Empty; try { if (!IsInitialized) { _logger?.ErrorLog($"It is not initialized.", ClassName); return(false); } int imageCounter = LoadNamedData(data, ref borderPointarrays, ref rawImages, ref maskImages); if (imageCounter == 0 || imageCounter > _enumNames.Length) { _logger?.InfoLog("No images were loaded from dynamicresult OR more images arrived than enumNames!", ClassName); } for (int m = 0; m < imageCounter; m++) { if (_enumNames.Length == imageCounter) { additionalExtensionName = _enumNames[m]; } int[] indexes = Iterate(rawImages[m], maskImages[m], borderPointarrays[m]); if (indexes == null || indexes.Length != 2) { _logger?.InfoLog($"Problem during Iterate. Return indexes are not proper for further calculation. index:{m}", ClassName); } if (!CalculateStatistics(indexes[0], indexes[1], maskImages[m])) { _logger?.InfoLog($"Problem during statistics calculation: {m}", ClassName); continue; } double homogeneity1 = Math.Max(Math.Abs(_meanOfRegion2OfFirst.V0 - _meanOfRegion1OfFirst.V0), Math.Abs(_meanOfRegion2OfFirst.V0 - _meanOfRegion3OfFirst.V0)); double homogeneity2 = Math.Abs(_meanOfRegion1OfFirst.V0 - _meanOfRegion3OfFirst.V0); data.Add(new DoubleNamedData(_meanOfFirst.V0, "MeanOf" + lorum + "Mean", "MeanOf" + lorum + "Mean")); data.Add(new DoubleNamedData(_stdOfFirst.V0, "StdOf" + lorum + "Mean", "StdOf" + lorum + "Mean")); data.Add(new DoubleNamedData(_meanOfSecond.V0, "MeanOf" + lorum + "Std", "MeanOf" + lorum + "Std")); data.Add(new DoubleNamedData(_stdOfSecond.V0, "StdOf" + lorum + "Std", "StdOf" + lorum + "Std")); data.Add(new DoubleNamedData(homogeneity1, lorum + "MeanHomogeneity1", lorum + "MeanHomogeneity1")); data.Add(new DoubleNamedData(homogeneity2, lorum + "MeanHomogeneity2", lorum + "MeanHomogeneity2")); data.Add(new DoubleNamedData(_minOfFirst.V0, "MinOf" + lorum + "Mean", "MinOf" + lorum + "Mean")); data.Add(new DoubleNamedData(_maxOfFirst.V0, "MaxOf" + lorum + "Mean", "MaxOf" + lorum + "Mean")); } return(true); } catch (Exception ex) { _logger?.ErrorLog($"Exception occured: {ex}", ClassName); return(false); } finally { foreach (var item in rawImages) { if (item != null) { item.ROI = _fullROI; } } foreach (var item in maskImages) { if (item != null) { item.ROI = _fullROI; } } } }
public override bool Execute(List <NamedData> data, string fileName) { Image <Gray, ushort>[] rawImages = null; Image <Gray, byte>[] maskImages = null; BorderPointArrays borderPointarrays = null; double[,,] resultVector1 = _firstVector.Data; double[,,] resultVector2 = _secondVector.Data; try { if (!IsInitialized) { _logger.ErrorLog($"It is not initialized.", ClassName); return(false); } int imageCounter = LoadNamedData(data, ref borderPointarrays, ref rawImages, ref maskImages); if (imageCounter == 0) { _logger?.Info($"No images were loaded from dynamicresult", ClassName); } for (int m = 0; m < imageCounter; m++) { if (!CheckInputData(rawImages[m], maskImages[m], borderPointarrays[m], _firstVector, _secondVector)) { return(false); } ushort[,,] imgData = rawImages[m].Data; for (int i = 0; i < borderPointarrays[m].Length / 2; i++) { try { double sum = 0; double sum2 = 0; int counter = 0; for (int j = 0; j < (borderPointarrays[m][i, 1] - borderPointarrays[m][i, 0]); j++) { sum += imgData[i, borderPointarrays[m][i, 0] + j, 0]; sum2 += (imgData[i, borderPointarrays[m][i, 0] + j, 0] * imgData[i, borderPointarrays[m][i, 0] + j, 0]); counter++; } resultVector1[0, i, 0] = (float)(sum / counter); resultVector2[0, i, 0] = (float)Math.Sqrt(sum2 / (counter - 1) - (sum * sum / Math.Pow(counter - 1, 2))); } catch (Exception ex) { _logger?.ErrorLog($"Error during the calculation, i:{i}, message: {ex}.", ClassName); return(false); } } } return(true); } catch (Exception) { throw; } }