[contrib/cristal] compile the xrays lib
[hkl.git] / contrib / cristal / xrays / xrays-droplet.h
blobb88676392c2d7230d4c80bd33853832314d85f80
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__
25 #include <stdlib.h>
26 #include "xrays-image.h"
28 XRAYS_BEGIN_DECLS
30 typedef struct _XRaysDroplet XRaysDroplet;
32 struct _XRaysDroplet
34 unsigned int nb_gouttes;
35 float I_max;
36 float I_tot;
37 int I_traitement;
39 XRaysImage const *dark;
40 XRaysImage *gtt;
41 XRaysImage *indic;
42 XRaysImage *img;
43 short int trigger;
44 short int seuil;
45 short int ADU_per_photon;
46 int cosmic;
47 int hist;
48 int contour;
49 int nb_images;
50 int nb_pixels;
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
71 * le haut du tableau.
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);
81 XRAYS_END_DECLS
83 #endif