Files
camserver_sf/configuration/user_scripts/late_averaging.py

28 lines
883 B
Python

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