/// <summary> /// Get the coefficient map of inner structures of tissue for the transform rigidity penalty term. /// </summary> /// <param name="filename">image filename</param> /// <returns>return coefficient map filename</returns> private string GetInnerStructureSegmentationsAsCoefficientMap(string filename) { InnerTissueSegmentation innerSegImage = GetInnerStructureSegmentation(filename); string filenameCoefficientMap = ReadWriteUtils.GetOutputDirectory(_parameters, _parameters.Iteration) + Constants.cCoefficientFilename; ReadWriteUtils.WriteUMatToFile(filenameCoefficientMap, innerSegImage.GetOutput().FirstOrDefault()); innerSegImage.Dispose(); // rescale image sitk.Image img = ReadWriteUtils.ReadITKImageFromFile(filenameCoefficientMap); sitk.CastImageFilter castFilter = new sitk.CastImageFilter(); castFilter.SetOutputPixelType(sitk.PixelIDValueEnum.sitkFloat32); img = castFilter.Execute(img); sitk.RescaleIntensityImageFilter filter = new sitk.RescaleIntensityImageFilter(); filter.SetOutputMinimum(0.0); filter.SetOutputMaximum(1.0); sitk.Image coefficientMap = filter.Execute(img); // save as mhd filenameCoefficientMap = ReadWriteUtils.GetOutputDirectory(_parameters, _parameters.Iteration) + Constants.cCoefficientFilename; ReadWriteUtils.WriteSitkImage(coefficientMap, filenameCoefficientMap); coefficientMap.Dispose(); return(filenameCoefficientMap); }
/// <summary> /// Get filename of the inner structures mask of an image. /// </summary> /// <param name="filename">filename of the image</param> /// <returns>filename of the masked image</returns> private string GetInnerStructureSegmentationFilename(string filename) { string outputFilename = ReadWriteUtils.GetOutputDirectory(_parameters, _parameters.Iteration) + "\\mask_" + Path.GetFileName(filename); InnerTissueSegmentation seg = GetInnerStructureSegmentation(filename); seg.GetOutput()[1].Save(filename); seg.Dispose(); return(filename); }
/// <summary> /// Get image of the inner structures mask of an image. /// </summary> /// <param name="filename">filename of the image</param> /// <returns>masked image</returns> private sitk.Image GetInnerStructureMask(string filename) { string outputFilename = ReadWriteUtils.GetOutputDirectory(_parameters, _parameters.Iteration) + "\\mask_" + Path.GetFileName(filename); InnerTissueSegmentation seg = GetInnerStructureSegmentation(filename); seg.GetOutput()[1].Save(outputFilename); seg.Dispose(); sitk.Image mask = ReadWriteUtils.ReadITKImageFromFile(outputFilename); return(mask); }
private string DoInnerTissueSegmentation(Image <Bgr, byte> img, Image <Gray, byte> mask, string filename) { InnerTissueSegmentation seg = new InnerTissueSegmentation(img.Clone(), mask.Clone(), registrationParameters.InnerStructuresSegParams); seg.Execute(); UMat innerMask = seg.GetOutput()[0].Clone(); seg.Dispose(); string filepathResult = registrationParameters.OutputDirectory + filename; ReadWriteUtils.WriteUMatToFile(filepathResult, innerMask); return(filepathResult); }
private void buttonPreview_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; if (image != null) { WholeTissueSegmentation segImage = new WholeTissueSegmentation(image, segmentationParametersWholeTissue); segImage.Execute(); Image <Gray, byte> mask = segImage.GetOutput().Clone(); segImage.Dispose(); if (mask != null) { InnerTissueSegmentation seg = new InnerTissueSegmentation(image.Clone(), mask.Clone(), segmentationParametersInnerTissue); seg.Execute(); List <UMat> result = seg.GetOutput(); UMat a = new UMat(); result[0].Clone().ConvertTo(a, Emgu.CV.CvEnum.DepthType.Cv8U); UMat b = new UMat(); result[1].Clone().ConvertTo(b, Emgu.CV.CvEnum.DepthType.Cv8U); seg.Dispose(); if (pictureBoxSegmentation1.Image != null) { this.Invoke(new MethodInvoker(delegate() { pictureBoxSegmentation1.Image.Dispose(); pictureBoxSegmentation1.Image = null; })); } pictureBoxSegmentation1.Image = a.Bitmap; if (pictureBoxSegmentation2.Image != null) { this.Invoke(new MethodInvoker(delegate() { pictureBoxSegmentation2.Image.Dispose(); pictureBoxSegmentation2.Image = null; })); } pictureBoxSegmentation2.Image = b.Bitmap; } } Cursor.Current = Cursors.Default; }