45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
import json
|
|
|
|
|
|
def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, image_background_array=None):
|
|
res = {}
|
|
|
|
camera_name = parameters["camera_name"]
|
|
|
|
roi_signal = parameters.get("roi_signal")
|
|
roi_background = parameters.get("roi_background")
|
|
project_axis = parameters.get("project_axis", 0)
|
|
|
|
processing_parameters = {
|
|
"roi_signal": roi_signal,
|
|
"roi_background": roi_background,
|
|
"project_axis": project_axis,
|
|
# "input_params": len(parameters.get("background_data", [123]))
|
|
}
|
|
|
|
processing_parameters = json.dumps(processing_parameters)
|
|
res[camera_name + ".processing_parameters"] = processing_parameters
|
|
|
|
if roi_signal:
|
|
projection_signal = get_roi_projection(image, roi_signal, project_axis)
|
|
res[camera_name + ".projection_signal"] = projection_signal
|
|
|
|
if roi_background:
|
|
projection_background = get_roi_projection(image, roi_background, project_axis)
|
|
res[camera_name + ".projection_background"] = projection_background
|
|
|
|
# res["TEST-SPEC"] = 123 #list(parameters)
|
|
|
|
return res
|
|
|
|
|
|
|
|
def get_roi_projection(image, roi, axis):
|
|
x_start, x_stop, y_start, y_stop = roi
|
|
cropped = image[x_start:x_stop, y_start:y_stop]
|
|
project = cropped.mean(axis=axis)
|
|
return project
|
|
|
|
|
|
|