1 /* This file is part of the hkl library.
3 * The hkl library is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
8 * The hkl library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with the hkl library. If not, see <http://www.gnu.org/licenses/>.
16 * Copyright (C) 2003-2023 Synchrotron SOLEIL
17 * L'Orme des Merisiers Saint-Aubin
18 * BP 48 91192 GIF-sur-YVETTE CEDEX
20 * Authors: Picca Frédéric-Emmanuel <picca@synchrotron-soleil.fr>
22 #ifndef __XRAYS_DROPLET_H__
23 #define __XRAYS_DROPLET_H__
26 #include "xrays-image.h"
30 typedef struct _XRaysDroplet XRaysDroplet
;
34 unsigned int nb_gouttes
;
39 XRaysImage
const *dark
;
45 short int ADU_per_photon
;
51 XRaysImage
*histogram
;
55 * Allocate the memory for the Gtt structure of data_size
57 extern XRaysDroplet
* xrays_droplet_new(XRaysImage
const *dark
, double trigger
, double seuil
, double ADU_per_photon
, int cosmic
, int contour
);
60 * destroy the Gtt structure
62 extern void xrays_droplet_free(XRaysDroplet
*droplet
);
65 * Cette fonction rempli le tableau gtt pour un niveau de trigger donné. Le
66 * principe est simplement de remplir par le bas le tableau avec les
67 * indice_ui32s des pixels appartenant aux différentes gouttes. On les sépare
68 * en multipliant l'indice_ui32 du dernier pixel par -1. On a ainsi un
69 * enchainement de gouttes séeparées par un indice_ui32 négatif.
70 * On fait de même avec les contours correspondant mais cette fois-ci par
72 * Lors de la recherche des gouttes et des contours, on utilise le tableau
73 * indic qui a les mêmes dimensions que l'image à traiter et qui indique si
74 * un pixel appartient déjà à une goutte, ou s'il s'agit d'un contour, à combien
75 * de gouttes voisines il appartient.
77 extern int xrays_droplet_add_images(XRaysDroplet
*droplet
, XRaysImage
const *img
);
79 extern void xrays_droplet_reset(XRaysDroplet
*droplet
);