blob: 642cc3a69eeeece0b141865490e7e3b13f0283b3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
/*
* image.h
*
* Handle images and image features
*
* (c) 2007 Thomas White <taw27@cam.ac.uk>
*
* dtr - Diffraction Tomography Reconstruction
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#ifndef IMAGE_H
#define IMAGE_H
#include "control.h"
typedef struct imagefeature_struct {
struct imagerecord_struct *parent;
int x;
int y;
double intensity;
} ImageFeature;
typedef struct {
ImageFeature *features;
int n_features;
} ImageFeatureList;
typedef struct imagerecord_struct {
uint16_t *image;
double tilt; /* Degrees. Defines where the pattern lies in reciprocal space */
double omega; /* Degrees. Defines where the pattern lies in reciprocal space */
double slop; /* Degrees. Defines where the pattern lies "on the negative" */
FormulationMode fmode;
double pixel_size;
double camera_len;
double lambda;
double resolution;
int width;
int height;
int x_centre;
int y_centre;
ImageFeatureList *features;
} ImageRecord;
typedef struct imagelist_struct {
int n_images;
ImageRecord *images;
} ImageList;
extern ImageList *image_list_new(void);
extern int image_add(ImageList *list, uint16_t *image, int width, int height, double tilt, ControlContext *ctx);
extern ImageFeatureList *image_feature_list_new(void);
extern void image_feature_list_free(ImageFeatureList *flist);
extern void image_add_feature(ImageFeatureList *flist, double x, double y, ImageRecord *parent, double intensity);
#endif /* IMAGE_H */
|