Commit 8fa8e038459bb9a8771daa13525e1a2e14ab800c
1 parent
c171a2bd
Exists in
master
and in
67 other branches
ENH: Returning scalar range on creating memmap from dicom
Showing
1 changed file
with
13 additions
and
1 deletions
Show diff stats
invesalius/data/imagedata_utils.py
| ... | ... | @@ -476,10 +476,20 @@ def dcm2memmap(files, slice_size, orientation): |
| 476 | 476 | matrix = numpy.memmap(temp_file, mode='w+', dtype='int16', shape=shape) |
| 477 | 477 | dcm_reader = vtkgdcm.vtkGDCMImageReader() |
| 478 | 478 | cont = 0 |
| 479 | + max_scalar = None | |
| 480 | + min_scalar = None | |
| 479 | 481 | for n, f in enumerate(files): |
| 480 | 482 | dcm_reader.SetFileName(f) |
| 481 | 483 | dcm_reader.Update() |
| 482 | 484 | image = dcm_reader.GetOutput() |
| 485 | + | |
| 486 | + min_aux, max_aux = image.GetScalarRange() | |
| 487 | + if min_scalar is None or min_aux < min_scalar: | |
| 488 | + min_scalar = min_aux | |
| 489 | + | |
| 490 | + if max_scalar is None or max_aux > max_scalar: | |
| 491 | + max_scalar = max_aux | |
| 492 | + | |
| 483 | 493 | array = numpy_support.vtk_to_numpy(image.GetPointData().GetScalars()) |
| 484 | 494 | if orientation == 'CORONAL': |
| 485 | 495 | array.shape = matrix.shape[0], matrix.shape[2] |
| ... | ... | @@ -494,7 +504,9 @@ def dcm2memmap(files, slice_size, orientation): |
| 494 | 504 | cont += 1 |
| 495 | 505 | |
| 496 | 506 | matrix.flush() |
| 497 | - return matrix, temp_file | |
| 507 | + scalar_range = min_scalar, max_scalar | |
| 508 | + | |
| 509 | + return matrix, scalar_range, temp_file | |
| 498 | 510 | |
| 499 | 511 | def to_vtk(n_array, spacing, slice_number, orientation): |
| 500 | 512 | try: | ... | ... |