pydicom.pixel_data_handlers.rle_handler

Use the numpy package to convert RLE lossless Pixel Data to a numpy.ndarray.

Supported transfer syntaxes

  • 1.2.840.10008.1.2.5 : RLE Lossless

Supported data

The RLE handler supports the conversion of data in the (7FE0,0010) Pixel Data element to a numpy ndarray provided the related Image Pixel module elements have values given in the table below.

Element

Supported values

Tag

Keyword

Type

(0028,0002)

SamplesPerPixel

1

N

Required

(0028,0006)

PlanarConfiguration

1C

1

Optional

(0028,0008)

NumberOfFrames

1C

N

Optional

(0028,0010)

Rows

1

N

Required

(0028,0011)

Columns

1

N

Required

(0028,0100)

BitsAllocated

1

8, 16, 32

Required

(0028,0103)

PixelRepresentation

1

0, 1

Required

Functions

get_pixeldata(ds[, rle_segment_order])

Return an numpy.ndarray of the Pixel Data.

is_available()

Return True if the handler has its dependencies met.

needs_to_convert_to_RGB(ds)

Return True if the Pixel Data should to be converted from YCbCr to RGB.

rle_encode_frame(arr)

Return an numpy.ndarray image frame as RLE encoded bytearray.

should_change_PhotometricInterpretation_to_RGB(ds)

Return True if the Photometric Interpretation should be changed to RGB.

supports_transfer_syntax(transfer_syntax)

Return True if the handler supports the transfer_syntax.

pydicom.pixel_data_handlers.rle_handler.get_pixeldata(ds: Dataset, rle_segment_order: str = '>') np.ndarray[source]

Return an numpy.ndarray of the Pixel Data.

Parameters
  • ds (dataset.Dataset) – The Dataset containing an Image Pixel module and the RLE encoded Pixel Data to be converted.

  • rle_segment_order (str) – The order of segments used by the RLE decoder when dealing with Bits Allocated > 8. Each RLE segment contains 8-bits of the pixel data, and segments are supposed to be ordered from MSB to LSB. A value of '>' means interpret the segments as being in big endian order (default) while a value of '<' means interpret the segments as being in little endian order which may be possible if the encoded data is non-conformant.

Returns

The decoded contents of (7FE0,0010) Pixel Data as a 1D array.

Return type

numpy.ndarray

Raises
  • AttributeError – If ds is missing a required element.

  • NotImplementedError – If ds contains pixel data in an unsupported format.

  • ValueError – If the actual length of the pixel data doesn’t match the expected length.

pydicom.pixel_data_handlers.rle_handler.is_available() bool[source]

Return True if the handler has its dependencies met.

pydicom.pixel_data_handlers.rle_handler.needs_to_convert_to_RGB(ds: Dataset) bool[source]

Return True if the Pixel Data should to be converted from YCbCr to RGB.

This affects JPEG transfer syntaxes.

pydicom.pixel_data_handlers.rle_handler.rle_encode_frame(arr: numpy.ndarray) bytes[source]

Return an numpy.ndarray image frame as RLE encoded bytearray.

New in version 1.3.

Deprecated since version 2.2: Use compress() instead

Parameters

arr (numpy.ndarray) – A 2D (if Samples Per Pixel = 1) or 3D (if Samples Per Pixel = 3) ndarray containing a single frame of the image to be RLE encoded.

Returns

An RLE encoded frame, including the RLE header, following the format specified by the DICOM Standard, Part 5, Annex G.

Return type

bytes

pydicom.pixel_data_handlers.rle_handler.should_change_PhotometricInterpretation_to_RGB(ds: Dataset) bool[source]

Return True if the Photometric Interpretation should be changed to RGB.

This affects JPEG transfer syntaxes.

pydicom.pixel_data_handlers.rle_handler.supports_transfer_syntax(transfer_syntax: str) bool[source]

Return True if the handler supports the transfer_syntax.

Parameters

transfer_syntax (uid.UID) – The Transfer Syntax UID of the Pixel Data that is to be used with the handler.