private Image ApplyCastImageFilter(Image image) { Ensure.ArgumentNotNull(image, nameof(image)); // TODO: find mapping between itk.simple.PixelIDValueEnum and System.Drawing.Imaging.PixelFormat // see https://github.com/SimpleITK/SimpleITK/issues/582 // Execute cast filter CastImageFilter filter = new CastImageFilter(); PixelIDValueEnum imageType = PixelIDValueEnum.swigToEnum(image.GetPixelIDValue()); if (imageType == PixelIDValueEnum.sitkVectorUInt8 || imageType == PixelIDValueEnum.sitkUInt8) { return(image); } else { if (imageType.ToString().ToLowerInvariant().Contains("vector")) { filter.SetOutputPixelType(PixelIDValueEnum.sitkVectorUInt8); } else { filter.SetOutputPixelType(PixelIDValueEnum.sitkUInt8); } Image output = filter.Execute(image); filter.Dispose(); image.Dispose(); return(output); } }
/// <summary> /// Applies the cast image filter. /// </summary> /// <param name="image">The ITK image.</param> /// <returns> /// The modified ITK image. /// </returns> /// <exception cref="ArgumentNullException">image</exception> private Image ApplyCastImageFilter(Image image) { if (image == null) { throw new ArgumentNullException(nameof(image)); } // TODO: find mapping between itk.simple.PixelIDValueEnum and System.Drawing.Imaging.PixelFormat // see https://github.com/SimpleITK/SimpleITK/issues/582 // Execute cast filter CastImageFilter filterC = new CastImageFilter(); filterC.SetOutputPixelType(PixelIDValueEnum.sitkUInt8); Image output = filterC.Execute(image); filterC.Dispose(); return(output ?? image); }