@@ -10,8 +10,9 @@ class RegionOfInterest(BaseNeo):
1010 _parent_objects = ('Group' ,)
1111 _parent_attrs = ('group' ,)
1212 _necessary_attrs = (
13- ('obj ' , ('ImageSequence' , ), 1 ),
13+ ('image_sequence ' , ('ImageSequence' , ), 1 ),
1414 )
15+ is_view = True
1516
1617 def __init__ (self , image_sequence , name = None , description = None , file_origin = None , ** annotations ):
1718 super ().__init__ (name = name , description = description ,
@@ -22,6 +23,16 @@ def __init__(self, image_sequence, name=None, description=None, file_origin=None
2223 raise ValueError ("Can only take a RegionOfInterest of an ImageSequence" )
2324 self .image_sequence = image_sequence
2425
26+ def _get_obj (self ):
27+ # for consistency with ChannelView
28+ return self .image_sequence
29+
30+ def _set_obj (self , value ):
31+ assert isinstance (value , ImageSequence )
32+ self .image_sequence = value
33+
34+ obj = property (fget = _get_obj , fset = _set_obj )
35+
2536 def resolve (self ):
2637 """
2738 Return a signal from within this region of the underlying ImageSequence.
@@ -44,6 +55,13 @@ class CircularRegionOfInterest(RegionOfInterest):
4455 Radius of the ROI in pixels
4556 """
4657
58+ _necessary_attrs = (
59+ ('image_sequence' , ('ImageSequence' , ), 1 ),
60+ ('x' , int ),
61+ ('y' , int ),
62+ ('radius' , int )
63+ )
64+
4765 def __init__ (self , image_sequence , x , y , radius , name = None , description = None ,
4866 file_origin = None , ** annotations ):
4967 super ().__init__ (image_sequence , name , description , file_origin , ** annotations )
@@ -94,6 +112,14 @@ class RectangularRegionOfInterest(RegionOfInterest):
94112 Height (y-direction) of the ROI in pixels
95113 """
96114
115+ _necessary_attrs = (
116+ ('image_sequence' , ('ImageSequence' , ), 1 ),
117+ ('x' , int ),
118+ ('y' , int ),
119+ ('width' , int ),
120+ ('height' , int )
121+ )
122+
97123 def __init__ (self , image_sequence , x , y , width , height , name = None , description = None ,
98124 file_origin = None , ** annotations ):
99125 super ().__init__ (image_sequence , name , description , file_origin , ** annotations )
@@ -139,6 +165,11 @@ class PolygonRegionOfInterest(RegionOfInterest):
139165 of the vertices of the polygon
140166 """
141167
168+ _necessary_attrs = (
169+ ('image_sequence' , ('ImageSequence' , ), 1 ),
170+ ('vertices' , list ),
171+ )
172+
142173 def __init__ (self , image_sequence , * vertices , name = None , description = None ,
143174 file_origin = None , ** annotations ):
144175 super ().__init__ (image_sequence , name , description , file_origin , ** annotations )
0 commit comments