@@ -41,6 +41,8 @@ def parameters(cls):
41
41
optional = True , default = 20 , description = "Maximum number vertex to draw mask." , value_type = int
42
42
),
43
43
'inverse_mask' : BoolField (optional = True , default = False , description = "Inverse mask" ),
44
+ 'concat_mask' : BoolField (
45
+ optional = True , default = False , description = 'concatenate masked image and mask to one tensor' )
44
46
})
45
47
return parameters
46
48
@@ -50,6 +52,7 @@ def configure(self):
50
52
self .max_length = self .get_value_from_config ('max_length' )
51
53
self .max_vertex = self .get_value_from_config ('max_vertex' )
52
54
self .inverse_mask = self .get_value_from_config ('inverse_mask' )
55
+ self .concat_mask = self .get_value_from_config ('concat_mask' )
53
56
54
57
@staticmethod
55
58
def _free_form_mask (mask , max_vertex , max_length , max_brush_width , h , w , max_angle = 360 ):
@@ -87,6 +90,10 @@ def process(self, image, annotation_meta=None):
87
90
img = img * (1 - mask ) + 255 * mask
88
91
if self .inverse_mask :
89
92
mask = 1 - mask
93
+ if self .concat_mask :
94
+ image .identifier = image .identifier [0 ]
95
+ image .data = np .concatenate ([img , mask ], axis = 2 )
96
+ return image
90
97
image .data = [img , mask ]
91
98
identifier = image .identifier [0 ]
92
99
image .identifier = ['{}_image' .format (identifier ), '{}_mask' .format (identifier )]
@@ -110,7 +117,9 @@ def parameters(cls):
110
117
optional = True , default = 128 ,
111
118
description = "Size of mask, used if both dimensions are equal" , value_type = int
112
119
),
113
- 'inverse_mask' : BoolField (optional = True , default = False , description = "Inverse mask" )
120
+ 'inverse_mask' : BoolField (optional = True , default = False , description = "Inverse mask" ),
121
+ 'concat_mask' : BoolField (
122
+ optional = True , default = False , description = 'concatenate masked image and mask to one tensor' )
114
123
115
124
})
116
125
return parameters
@@ -122,6 +131,7 @@ def configure(self):
122
131
if self .mask_width is None :
123
132
self .mask_width = 128
124
133
self .inverse_mask = self .get_value_from_config ('inverse_mask' )
134
+ self .concat_mask = self .get_value_from_config ('concat_mask' )
125
135
126
136
def process (self , image , annotation_meta = None ):
127
137
if len (image .data ) == 2 :
@@ -139,6 +149,10 @@ def process(self, image, annotation_meta=None):
139
149
img = img * (1 - mask ) + 255 * mask
140
150
if self .inverse_mask :
141
151
mask = 1 - mask
152
+ if self .concat_mask :
153
+ image .identifier = image .identifier [0 ]
154
+ image .data = np .concatenate ([img , mask ], axis = 2 )
155
+ return image
142
156
image .data = [img , mask ]
143
157
identifier = image .identifier [0 ]
144
158
image .identifier = ['{}_image' .format (identifier ), '{}_mask' .format (identifier )]
@@ -154,14 +168,17 @@ def parameters(cls):
154
168
parameters .update ({
155
169
'mask_dir' : PathField (is_directory = True , optional = False , description = "Path to mask dataset directory" ),
156
170
'inverse_mask' : BoolField (optional = True , default = False , description = "Inverse mask" ),
157
- 'mask_loader' : StringField (optional = True , default = 'numpy_reader' , description = "Mask loader" )
171
+ 'mask_loader' : StringField (optional = True , default = 'numpy_reader' , description = "Mask loader" ),
172
+ 'concat_mask' : BoolField (
173
+ optional = True , default = False , description = 'concatenate masked image and mask to one tensor' )
158
174
})
159
175
return parameters
160
176
161
177
def configure (self ):
162
178
self .mask_dir = self .get_value_from_config ('mask_dir' )
163
179
self .inverse_mask = self .get_value_from_config ('inverse_mask' )
164
180
self .mask_loader = self .get_value_from_config ('mask_loader' )
181
+ self .concat_mask = self .get_value_from_config ('concat_mask' )
165
182
166
183
def process (self , image , annotation_meta = None ):
167
184
if len (image .data ) == 2 :
@@ -188,6 +205,10 @@ def process(self, image, annotation_meta=None):
188
205
mask = np .expand_dims (mask , axis = 2 )
189
206
190
207
img = img * (1 - mask ) + 255 * mask
208
+ if self .concat_mask :
209
+ image .identifier = image .identifier [0 ]
210
+ image .data = np .concatenate ([img , mask ], axis = 2 )
211
+ return image
191
212
image .data = [img , mask ]
192
213
identifier = image .identifier [0 ]
193
214
image .identifier = ['{}_image' .format (identifier ), '{}_mask' .format (identifier )]
0 commit comments