def convert_output_type(self, frame, output_choice): """Convert 'frame' to 'output_choice' if necessary and return it.""" if output_choice == 'as float, range 0-1': if frame.min()<0 or frame.max()>1: return filter_base.make_normfloat32(frame) elif frame.dtype == numpy.dtype('f'): return frame else: return filter_base.make_normfloat32(frame) #frame.astype('f') # return frame.astype('f') elif output_choice == 'original': return frame else: raise Exception("In '%s': An error (unhandled case) occurred when converting between input and output data types." %self.name)
def process(self, input_images, connected_outs): if len(input_images) == 0: return FAIL all_weights = [self.getParamContent(input_name+' weight') for input_name in self.input_names] imgs = [] weights = [] all_inputs_8bit = True for i,input_name in enumerate(self.input_names): if input_name in input_images.keys(): imgs.append(input_images[input_name]) if input_images[input_name].dtype != 'uint8': all_inputs_8bit = False weights.append(all_weights[i]) summation_img = numpy.zeros_like(imgs[0], dtype='f') for i,img in enumerate(imgs): summation_img = summation_img+img*weights[i] if all_inputs_8bit: out_im = filter_base.make_uint8(summation_img) else: out_im = filter_base.make_normfloat32(summation_img) return {self.o_output:out_im}