Esempio n. 1
0
        /// <summary>
        /// Extracts the position on the specified axis.
        /// </summary>
        /// <param name="image">The ITK image.</param>
        /// <param name="axisType">Type of the axis.</param>
        /// <param name="index">The position.</param>
        /// <returns>
        /// The extracted position as two-dimensional ITK image.
        /// </returns>
        /// <exception cref="ArgumentNullException">image</exception>
        public Image ExtractPosition(Image image, AxisType axisType, uint index)
        {
            if (image == null)
            {
                throw new ArgumentNullException(nameof(image));
            }

            var size        = image.GetSize();
            var indexVector = new VectorInt32 {
                0, 0, 0
            };
            int indexConverted = Convert.ToInt32(index);

            switch (axisType)
            {
            case AxisType.X:
                size[0]        = 0;
                indexVector[0] = indexConverted;
                break;

            case AxisType.Y:
                size[1]        = 0;
                indexVector[1] = indexConverted;
                break;

            case AxisType.Z:
                size[2]        = 0;
                indexVector[2] = indexConverted;
                break;

            default:
                break;
            }

            var filter = new ExtractImageFilter();

            filter.SetSize(size);
            filter.SetIndex(indexVector);

            return(filter.Execute(image));
        }
Esempio n. 2
0
        /// <inheritdoc/>
        public Image ExtractPosition(Image image, AxisType axisType, int index)
        {
            Ensure.ArgumentNotNull(image, nameof(image));

            var size        = image.GetSize();
            var indexVector = new VectorInt32 {
                0, 0, 0
            };
            int indexConverted = Convert.ToInt32(index);

            switch (axisType)
            {
            case AxisType.X:
                size[0]        = 0;
                indexVector[0] = indexConverted;
                break;

            case AxisType.Y:
                size[1]        = 0;
                indexVector[1] = indexConverted;
                break;

            case AxisType.Z:
                size[2]        = 0;
                indexVector[2] = indexConverted;
                break;

            default:
                break;
            }

            ExtractImageFilter filter = new ExtractImageFilter();

            filter.SetSize(size);
            filter.SetIndex(indexVector);
            Image output = filter.Execute(image);

            filter.Dispose();

            return(output);
        }