@@ -131,27 +131,27 @@ class Viewer(ViewerParent):
131
131
_rendering_image = CBool (
132
132
default_value = False ,
133
133
help = "We are currently volume rendering the image." ).tag (sync = True )
134
- label_map = ITKImage (
134
+ label_image = ITKImage (
135
135
default_value = None ,
136
136
allow_none = True ,
137
137
help = "Label map for the image." ).tag (
138
138
sync = False ,
139
139
** itkimage_serialization )
140
- rendered_label_map = ITKImage (
140
+ rendered_label_image = ITKImage (
141
141
default_value = None ,
142
142
allow_none = True ).tag (
143
143
sync = True ,
144
144
** itkimage_serialization )
145
- label_map_names = List (
145
+ label_image_names = List (
146
146
trait = Tuple (),
147
147
allow_none = True ,
148
148
default_value = None ,
149
149
help = "Names for labels in the label map." ).tag (
150
150
sync = True )
151
- label_map_blend = CFloat (
151
+ label_image_blend = CFloat (
152
152
default_value = 0.5 ,
153
153
help = "Blend of the label map with the intensity image." ).tag (sync = True )
154
- label_map_weights = NDArray (dtype = np .float32 , default_value = None , allow_none = True ,
154
+ label_image_weights = NDArray (dtype = np .float32 , default_value = None , allow_none = True ,
155
155
help = "Weights, from 0.0 to 1.0, for every label in the label map." )\
156
156
.tag (sync = True , ** array_serialization )\
157
157
.valid (shape_constraints (None ,))
@@ -369,27 +369,27 @@ def __init__(self, **kwargs): # noqa: C901
369
369
vmax_list = self ._validate_vmax (proposal )
370
370
kwargs ['vmax' ] = vmax_list
371
371
self .observe (self ._on_geometries_changed , ['geometries' ])
372
- have_label_map = 'label_map ' in kwargs and kwargs ['label_map ' ] is not None
373
- if have_label_map :
372
+ have_label_image = 'label_image ' in kwargs and kwargs ['label_image ' ] is not None
373
+ if have_label_image :
374
374
# Interpolation is not currently supported with label maps
375
375
kwargs ['interpolation' ] = False
376
376
377
377
super (Viewer , self ).__init__ (** kwargs )
378
378
379
- if not self .image and not self .label_map :
379
+ if not self .image and not self .label_image :
380
380
return
381
381
if self .image :
382
382
image = self .image
383
383
else :
384
- image = self .label_map
384
+ image = self .label_image
385
385
dimension = image .GetImageDimension ()
386
386
largest_region = image .GetLargestPossibleRegion ()
387
387
size = largest_region .GetSize ()
388
388
389
389
# Cache this so we do not need to recompute on it when resetting the
390
390
# roi
391
391
self ._largest_roi_rendered_image = None
392
- self ._largest_roi_rendered_label_map = None
392
+ self ._largest_roi_rendered_label_image = None
393
393
self ._largest_roi = np .zeros ((2 , 3 ), dtype = np .float64 )
394
394
if not np .any (self .roi ):
395
395
largest_index = largest_region .GetIndex ()
@@ -411,16 +411,16 @@ def __init__(self, **kwargs): # noqa: C901
411
411
if self ._downsampling and self .image :
412
412
self .extractor = itk .ExtractImageFilter .New (self .image )
413
413
self .shrinker = itk .BinShrinkImageFilter .New (self .extractor )
414
- if self ._downsampling and self .label_map :
415
- self .label_map_extractor = itk .ExtractImageFilter .New (self .label_map )
416
- self .label_map_shrinker = itk .ShrinkImageFilter .New (self .label_map_extractor )
414
+ if self ._downsampling and self .label_image :
415
+ self .label_image_extractor = itk .ExtractImageFilter .New (self .label_image )
416
+ self .label_image_shrinker = itk .ShrinkImageFilter .New (self .label_image_extractor )
417
417
self ._update_rendered_image ()
418
418
if self ._downsampling :
419
419
self .observe (self ._on_roi_changed , ['roi' ])
420
420
421
421
self .observe (self ._on_reset_crop_requested , ['_reset_crop_requested' ])
422
- self .observe (self .update_rendered_image , ['image' , 'label_map ' ])
423
- self .observe (self .update_rendered_image , ['image' , 'label_map ' ])
422
+ self .observe (self .update_rendered_image , ['image' , 'label_image ' ])
423
+ self .observe (self .update_rendered_image , ['image' , 'label_image ' ])
424
424
425
425
def _on_roi_changed (self , change = None ):
426
426
if self ._downsampling :
@@ -431,7 +431,7 @@ def _on_reset_crop_requested(self, change=None):
431
431
if self .image :
432
432
image = self .image
433
433
else :
434
- image = self .label_map
434
+ image = self .label_image
435
435
dimension = image .GetImageDimension ()
436
436
largest_region = image .GetLargestPossibleRegion ()
437
437
size = largest_region .GetSize ()
@@ -450,7 +450,7 @@ def _on_reset_crop_requested(self, change=None):
450
450
@debounced (delay_seconds = 0.2 , method = True )
451
451
def update_rendered_image (self , change = None ):
452
452
self ._largest_roi_rendered_image = None
453
- self ._largest_roi_rendered_label_map = None
453
+ self ._largest_roi_rendered_label_image = None
454
454
self ._largest_roi = np .zeros ((2 , 3 ), dtype = np .float64 )
455
455
self ._update_rendered_image ()
456
456
@@ -463,7 +463,7 @@ def _find_scale_factors(limit, dimension, size):
463
463
return scale_factors
464
464
465
465
def _update_rendered_image (self ):
466
- if self .image is None and self .label_map is None :
466
+ if self .image is None and self .label_image is None :
467
467
return
468
468
if self ._rendering_image :
469
469
@yield_for_change (self , '_rendering_image' )
@@ -477,7 +477,7 @@ def f():
477
477
if self .image :
478
478
image = self .image
479
479
else :
480
- image = self .label_map
480
+ image = self .label_image
481
481
dimension = image .GetImageDimension ()
482
482
index = image .TransformPhysicalPointToIndex (
483
483
self .roi [0 ][:dimension ])
@@ -494,8 +494,8 @@ def f():
494
494
self ._scale_factors = np .array (scale_factors , dtype = np .uint8 )
495
495
if self .image :
496
496
self .shrinker .SetShrinkFactors (scale_factors [:dimension ])
497
- if self .label_map :
498
- self .label_map_shrinker .SetShrinkFactors (scale_factors [:dimension ])
497
+ if self .label_image :
498
+ self .label_image_shrinker .SetShrinkFactors (scale_factors [:dimension ])
499
499
500
500
region = itk .ImageRegion [dimension ]()
501
501
region .SetIndex (index )
@@ -508,70 +508,70 @@ def f():
508
508
if self .image :
509
509
self .extractor .SetInput (self .image )
510
510
self .extractor .SetExtractionRegion (region )
511
- if self .label_map :
512
- self .label_map_extractor .SetInput (self .label_map )
513
- self .label_map_extractor .SetExtractionRegion (region )
511
+ if self .label_image :
512
+ self .label_image_extractor .SetInput (self .label_image )
513
+ self .label_image_extractor .SetExtractionRegion (region )
514
514
515
515
size = region .GetSize ()
516
516
517
517
is_largest = False
518
518
if np .any (self ._largest_roi ) and np .all (
519
519
self ._largest_roi == self .roi ):
520
520
is_largest = True
521
- if self ._largest_roi_rendered_image is not None or self ._largest_roi_rendered_label_map is not None :
521
+ if self ._largest_roi_rendered_image is not None or self ._largest_roi_rendered_label_image is not None :
522
522
if self .image :
523
523
self .rendered_image = self ._largest_roi_rendered_image
524
- if self .label_map :
525
- self .rendered_label_map = self ._largest_roi_rendered_label_map
524
+ if self .label_image :
525
+ self .rendered_label_image = self ._largest_roi_rendered_label_image
526
526
return
527
527
528
528
if self .image :
529
529
self .shrinker .UpdateLargestPossibleRegion ()
530
- if self .label_map :
531
- self .label_map_shrinker .UpdateLargestPossibleRegion ()
530
+ if self .label_image :
531
+ self .label_image_shrinker .UpdateLargestPossibleRegion ()
532
532
if is_largest :
533
533
if self .image :
534
534
self ._largest_roi_rendered_image = self .shrinker .GetOutput ()
535
535
self ._largest_roi_rendered_image .DisconnectPipeline ()
536
536
self ._largest_roi_rendered_image .SetOrigin (
537
537
self .roi [0 ][:dimension ])
538
538
self .rendered_image = self ._largest_roi_rendered_image
539
- if self .label_map :
540
- self ._largest_roi_rendered_label_map = self .label_map_shrinker .GetOutput ()
541
- self ._largest_roi_rendered_label_map .DisconnectPipeline ()
542
- self ._largest_roi_rendered_label_map .SetOrigin (
539
+ if self .label_image :
540
+ self ._largest_roi_rendered_label_image = self .label_image_shrinker .GetOutput ()
541
+ self ._largest_roi_rendered_label_image .DisconnectPipeline ()
542
+ self ._largest_roi_rendered_label_image .SetOrigin (
543
543
self .roi [0 ][:dimension ])
544
- self .rendered_label_map = self ._largest_roi_rendered_label_map
544
+ self .rendered_label_image = self ._largest_roi_rendered_label_image
545
545
return
546
546
if self .image :
547
547
shrunk = self .shrinker .GetOutput ()
548
548
shrunk .DisconnectPipeline ()
549
549
shrunk .SetOrigin (self .roi [0 ][:dimension ])
550
550
self .rendered_image = shrunk
551
- if self .label_map :
552
- shrunk = self .label_map_shrinker .GetOutput ()
551
+ if self .label_image :
552
+ shrunk = self .label_image_shrinker .GetOutput ()
553
553
shrunk .DisconnectPipeline ()
554
554
shrunk .SetOrigin (self .roi [0 ][:dimension ])
555
- self .rendered_label_map = shrunk
555
+ self .rendered_label_image = shrunk
556
556
else :
557
557
if self .image :
558
558
self .rendered_image = self .image
559
- if self .label_map :
560
- self .rendered_label_map = self .label_map
559
+ if self .label_image :
560
+ self .rendered_label_image = self .label_image
561
561
562
- @validate ('label_map_weights ' )
563
- def _validate_label_map_weights (self , proposal ):
562
+ @validate ('label_image_weights ' )
563
+ def _validate_label_image_weights (self , proposal ):
564
564
"""Check the number of weights equals the number of labels."""
565
565
value = proposal ['value' ]
566
566
value = np .array (value , dtype = np .float32 )
567
- if self .rendered_label_map :
568
- labels = len (np .unique (itk .array_view_from_image (self .rendered_label_map )))
567
+ if self .rendered_label_image :
568
+ labels = len (np .unique (itk .array_view_from_image (self .rendered_label_image )))
569
569
if labels != len (value ):
570
570
raise TraitError ('Number of labels, {0}, does not equal number of label weights, {1}' .format (labels , len (value )))
571
571
return value
572
572
573
- @validate ('label_map_blend ' )
574
- def _validate_label_map_blend (self , proposal ):
573
+ @validate ('label_image_blend ' )
574
+ def _validate_label_image_blend (self , proposal ):
575
575
"""Enforce 0 <= value <= 1.0."""
576
576
value = proposal ['value' ]
577
577
if value < 0.0 :
@@ -590,8 +590,8 @@ def _validate_gradient_opacity(self, proposal):
590
590
return 1.0
591
591
return value
592
592
593
- @validate ('label_map_blend ' )
594
- def _validate_label_map_blend (self , proposal ):
593
+ @validate ('label_image_blend ' )
594
+ def _validate_label_image_blend (self , proposal ):
595
595
"""Enforce 0 <= value <= 1.0."""
596
596
value = proposal ['value' ]
597
597
if value < 0.0 :
@@ -748,7 +748,7 @@ def roi_region(self):
748
748
if self .image :
749
749
image = self .image
750
750
else :
751
- image = self .label_map
751
+ image = self .label_image
752
752
dimension = image .GetImageDimension ()
753
753
index = image .TransformPhysicalPointToIndex (
754
754
tuple (self .roi [0 ][:dimension ]))
@@ -768,7 +768,7 @@ def roi_slice(self):
768
768
if self .image :
769
769
image = self .image
770
770
else :
771
- image = self .label_map
771
+ image = self .label_image
772
772
dimension = image .GetImageDimension ()
773
773
region = self .roi_region ()
774
774
index = region .GetIndex ()
@@ -780,10 +780,10 @@ def roi_slice(self):
780
780
781
781
782
782
def view (image = None , # noqa: C901
783
- label_map = None , # noqa: C901
784
- label_map_names = None , # noqa: C901
785
- label_map_weights = None , # noqa: C901
786
- label_map_blend = 0.5 ,
783
+ label_image = None , # noqa: C901
784
+ label_image_names = None , # noqa: C901
785
+ label_image_weights = None , # noqa: C901
786
+ label_image_blend = 0.5 ,
787
787
cmap = None ,
788
788
lut = 'glasbey' ,
789
789
select_roi = False ,
@@ -856,17 +856,17 @@ def view(image=None, # noqa: C901
856
856
image : array_like, itk.Image, or vtk.vtkImageData
857
857
The 2D or 3D image to visualize.
858
858
859
- label_map : array_like, itk.Image, or vtk.vtkImageData
859
+ label_image : array_like, itk.Image, or vtk.vtkImageData
860
860
The 2D or 3D label map to visualize. If an image is also provided, the
861
861
label map must have the same size.
862
862
863
- label_map_names : OrderedDict of (label_value, label_name)
863
+ label_image_names : OrderedDict of (label_value, label_name)
864
864
String names associated with the integer label values.
865
865
866
- label_map_weights : 1D numpy float32 array, default: None
866
+ label_image_weights : 1D numpy float32 array, default: None
867
867
Rendering weights, from 0.0 to 1.0, associated labels in the label map.
868
868
869
- label_map_blend : float, default: 0.5
869
+ label_image_blend : float, default: 0.5
870
870
Label map blend with intensity image, from 0.0 to 1.0.
871
871
872
872
vmin: list of floats, default: Minimum of the image pixel buffer
@@ -1063,9 +1063,9 @@ def view(image=None, # noqa: C901
1063
1063
image = images [0 ]
1064
1064
1065
1065
viewer = Viewer (image = image ,
1066
- label_map = label_map ,
1067
- label_map_names = label_map_names ,
1068
- label_map_weights = label_map_weights ,
1066
+ label_image = label_image ,
1067
+ label_image_names = label_image_names ,
1068
+ label_image_weights = label_image_weights ,
1069
1069
cmap = cmap ,
1070
1070
lut = lut ,
1071
1071
select_roi = select_roi ,
0 commit comments