Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        /// <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);
        }