# 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

  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

  Return `True` if the handler has its dependencies met.

pydicom.pixel_data_handlers.rle_handler.needs_to_convert_to_RGB(ds: Dataset) → bool

  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

  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

  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

  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.