import numpy from cam_server.pipeline.data_processing import functions, processor from logging import getLogger _logger = getLogger(__name__) image_buffer = [] def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata=None): global image_buffer averaging = parameters.get("late_averaging") if averaging: while len(image_buffer) >= averaging: image_buffer.pop(0) image_buffer.append(image) try: frames = numpy.array(image_buffer) image = numpy.average(frames, 0)*averaging #_logger.info("Averaged: %d" % len(image_buffer)) except: # Different shapes image_buffer = [] return None else: image_buffer = [] ret = processor.process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata) return ret