Files
python-pydicom/pydicom-pr2076-np2.patch
Markéta Machová 688267a168 Accepting request 1255425 from home:DocB:branches:devel:languages:python
- version 3.0.1
  * patch removed: pydicom-pr1908-fixpillow.patch
  * patch removed: pydicom-pr2076-np2.patch
  * some tests disabled
  * changes in 3.0.1:
    * Changed logging of missing plugin imports to use :attr:`logging.DEBUG` (:issue:`2128`).
    * Include all :mod:`~pydicom.examples` module datasets with the package (:issue:`2128`, :issue:`2131`)
    * Fixed an invalid VR value in the private data dictionary (:issue:`2132`).
    * Fixed checking for *Bits Stored* when converting *Float Pixel Data* and *Double Float
      Pixel Data* using the :mod:`~pydicom.pixels` backend (:issue:`2135`).
    * Fixed decoding of pixel data for images with *Bits Allocated* of 1 when frame boundaries are not aligned with byte boundaries (:issue:`2134`).
  * changes in 3.0: seer release_notes/v3.0.0.rst

OBS-URL: https://build.opensuse.org/request/show/1255425
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydicom?expand=0&rev=34
2025-03-24 09:08:15 +00:00

102 lines
4.4 KiB
Diff

Index: pydicom-2.4.4/pydicom/pixel_data_handlers/pillow_handler.py
===================================================================
--- pydicom-2.4.4.orig/pydicom/pixel_data_handlers/pillow_handler.py
+++ pydicom-2.4.4/pydicom/pixel_data_handlers/pillow_handler.py
@@ -255,14 +255,14 @@ def get_pixeldata(ds: "Dataset") -> "num
if ds.PixelRepresentation == 1:
# Pillow converts signed data to unsigned
# so we need to undo this conversion
- arr -= 2**(bits_allocated - 1)
+ arr -= numpy.uint32(2**(bits_allocated - 1))
if shift:
arr = numpy.right_shift(arr, shift)
else:
# Corrections based on dataset elements
if ds.PixelRepresentation == 1:
- arr -= 2**(bits_allocated - 1)
+ arr -= numpy.uint32(2**(bits_allocated - 1))
if shift:
arr = numpy.right_shift(arr, shift)
Index: pydicom-2.4.4/pydicom/pixel_data_handlers/pylibjpeg_handler.py
===================================================================
--- pydicom-2.4.4.orig/pydicom/pixel_data_handlers/pylibjpeg_handler.py
+++ pydicom-2.4.4/pydicom/pixel_data_handlers/pylibjpeg_handler.py
@@ -66,11 +66,7 @@ except ImportError:
HAVE_PYLIBJPEG = False
if HAVE_PYLIBJPEG:
- try:
- from pylibjpeg.utils import get_pixel_data_decoders
- except ImportError:
- # Old import, deprecated in 1.2, removal in 2.0
- from pylibjpeg.pydicom.utils import get_pixel_data_decoders
+ from pylibjpeg.utils import get_pixel_data_decoders, Decoder
try:
import openjpeg
@@ -249,7 +245,7 @@ def generate_frames(
"elements are missing from the dataset: " + ", ".join(missing)
)
- decoder = _DECODERS[tsyntax]
+ decoder = cast(Decoder, _DECODERS[tsyntax])
LOGGER.debug(f"Decoding {tsyntax.name} encoded Pixel Data using {decoder}")
nr_frames = getattr(ds, "NumberOfFrames", 1)
@@ -260,7 +256,7 @@ def generate_frames(
bits_allocated = cast(int, ds.BitsAllocated)
for frame in generate_pixel_data_frame(ds.PixelData, nr_frames):
- arr = decoder(frame, pixel_module)
+ arr = decoder(frame, ds=pixel_module)
if (
tsyntax in [JPEG2000, JPEG2000Lossless]
Index: pydicom-2.4.4/pydicom/tests/test_encoders_pydicom.py
===================================================================
--- pydicom-2.4.4.orig/pydicom/tests/test_encoders_pydicom.py
+++ pydicom-2.4.4/pydicom/tests/test_encoders_pydicom.py
@@ -444,7 +444,7 @@ class TestRLEEncodeFrame:
assert ds.SamplesPerPixel == 3
assert ds.PixelRepresentation == 0
- arr = ref.newbyteorder('>')
+ arr = ref.view(ref.dtype.newbyteorder('>'))
assert id(arr) != id(ref)
assert arr.dtype == '>u2'
encoded = rle_encode_frame(arr)
Index: pydicom-2.4.4/pydicom/pixel_data_handlers/util.py
===================================================================
--- pydicom-2.4.4.orig/pydicom/pixel_data_handlers/util.py
+++ pydicom-2.4.4/pydicom/pixel_data_handlers/util.py
@@ -200,7 +200,7 @@ def apply_color_lut(
# IVs >= `first_map` are mapped by the Palette Color LUTs
# `first_map` may be negative, positive or 0
mapped_pixels = arr >= first_map
- clipped_iv[mapped_pixels] = arr[mapped_pixels] - first_map
+ clipped_iv[mapped_pixels] = arr[mapped_pixels] - np.int32(first_map)
# IVs > number of entries get set to last entry
np.clip(clipped_iv, 0, nr_entries - 1, out=clipped_iv)
@@ -276,7 +276,7 @@ def apply_modality_lut(arr: "np.ndarray"
# IVs >= `first_map` are mapped by the Modality LUT
# `first_map` may be negative, positive or 0
mapped_pixels = arr >= first_map
- clipped_iv[mapped_pixels] = arr[mapped_pixels] - first_map
+ clipped_iv[mapped_pixels] = arr[mapped_pixels] - np.int32(first_map)
# IVs > number of entries get set to last entry
np.clip(clipped_iv, 0, nr_entries - 1, out=clipped_iv)
@@ -458,7 +458,7 @@ def apply_voi(
# IVs >= `first_map` are mapped by the VOI LUT
# `first_map` may be negative, positive or 0
mapped_pixels = arr >= first_map
- clipped_iv[mapped_pixels] = arr[mapped_pixels] - first_map
+ clipped_iv[mapped_pixels] = arr[mapped_pixels] - np.int32(first_map)
# IVs > number of entries get set to last entry
np.clip(clipped_iv, 0, nr_entries - 1, out=clipped_iv)