/// <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)); }
/// <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); }