Source code for coseda.pipeline.processimage

import numpy as np
from diffractem.peakfinder8_extension import peakfinder_8

[docs] def process_image(i, image_data, x0, y0, cutoff, cutoff_low, threshold, min_snr, min_pix_count, max_pix_count, local_bg_radius, min_res, max_res): nPeaks = 0 X, Y = np.meshgrid(range(image_data.shape[1]), range(image_data.shape[0])) R = np.sqrt((X-x0)**2 + (Y-y0)**2).astype(np.float32) mask = np.ones_like(image_data, dtype=np.int8) mask[R > max_res] = 0 mask[R < min_res] = 0 pks = peakfinder_8(500, image_data.astype(np.float32), mask, R, image_data.shape[1], image_data.shape[0], 1, 1, threshold, min_snr, min_pix_count, max_pix_count, local_bg_radius) nPeaks = len(pks[0]) #print(nPeaks) if pks is None or len(pks[0]) == 0: fill = [0] * (500) return { 'index': i, 'nPeaks': 0, 'peakTotalIntensity': np.array(fill), 'peakXPosRaw': np.array(fill), 'peakYPosRaw': np.array(fill), } fill = [0] * (500 - nPeaks) return { 'index': i, 'nPeaks': nPeaks, 'peakTotalIntensity': np.array(pks[2] + fill), 'peakXPosRaw': np.array(pks[0] + fill), 'peakYPosRaw': np.array(pks[1] + fill), }