TPCCLIB
Loading...
Searching...
No Matches
libtpcroi.h
Go to the documentation of this file.
1
5#ifndef _LIBTPCROI_H
6#define _LIBTPCROI_H
7/*****************************************************************************/
8
9/*****************************************************************************/
10#include "tpcclibConfig.h"
11/*****************************************************************************/
12#include <stdio.h>
13#include <stdlib.h>
14#include <string.h>
15#include <math.h>
16#include <float.h>
17#include <ctype.h>
18#include <time.h>
19/*****************************************************************************/
20#include "libtpcmisc.h"
21#include "libtpcimgio.h"
22/*****************************************************************************/
23
24/*****************************************************************************/
25#ifndef BACKUP_EXTENSION
27#define BACKUP_EXTENSION ".bak"
28#endif
29/*****************************************************************************/
31extern char roierrmsg[128];
32/*****************************************************************************/
34#define ROI_RECTANGULAR 0
36#define ROI_CIRCULAR 1
38#define ROI_ELLIPSE 2
40#define ROI_TRACE 3
41/*****************************************************************************/
43typedef struct {
45 char imgfile[FILENAME_MAX];
47 float zoom;
51 int matnum;
53 int type;
55 int status;
57 int pos_x;
59 int pos_y;
61 int w;
63 int h;
65 int t;
67 int roi;
69 char roiname[256];
72 int *x;
75 int *y;
80 void *userdata;
81} ROI;
82
84typedef struct _RoiList {
88 struct _RoiList *next;
90 struct _RoiList *prev;
91} RoiList;
92
94typedef struct {
98 int nr;
100
101 int _allocNr;
103
105} ROI_list;
106/*****************************************************************************/
107
108/*****************************************************************************/
109/* ecat_roi */
110/* Initialize a ROI_list structure */
111extern void roi_init(ROI_list *rl);
112
113/* Delete all ROIs from a ROI_list */
114extern void roi_empty(ROI_list *rl);
115
116/* Delete a single ROI from ROI_list, pointed by pointer *roi */
117extern void roi_delete(ROI_list *rl,ROI *roi);
118
119/* Delete a single ROI from ROI_list, pointed by index number */
120extern void roi_delete_n(ROI_list *rl,int index);
121
122/* Read ROIs from file. They are appended to ROI_list */
123extern int roi_read(const char *fname,ROI_list *rl);
124
125/* Save all ROIs from ROI_list overwriting the existing file */
126extern int roi_save(const char *fname, ROI_list *rl);
127
128/* Append a single ROI into stream *fp */
129extern int roi_append(FILE *fp,ROI *roi);
130
131/* Append a single ROI to stream *fp from ROI_list, pointed by index.
132 (indexes start from 0 */
133extern int roi_append_n(FILE *fp, ROI_list *rl, int ind);
134
135extern int roi_onoff(ROI *roi, int dimx, int dimy, char **m);
136
137extern int roi_compute_rect(ROI *roi);
138extern int roi_compute_circle(ROI *roi);
139extern int roi_compute_ellipse(ROI *roi);
140extern void roi_print(ROI *roi);
141extern int jsqrt(int n);
142
143extern int roi_mplane(int matnum);
144extern int roi_mframe(int matnum);
145/*****************************************************************************/
146
147/*****************************************************************************/
148/* ecat_roi_old */
149
151#define roiEmpty roi_empty
153#define roiInit roi_init
155#define roiPrint roi_print
156
157extern void roiDel(ROI_list *rl, int ind); /* Delete one ROI from list, */
158extern int roiComputeRect(ROI *roi);
159extern int roiComputeCirc(ROI *roi);
160extern int roiComputeElli(ROI *roi);
161extern int roiRead(const char *fname, ROI_list *rl);
162extern int roiFillGaps(int *x, int *y, int nr, int **ffx, int **ffy);
163extern int roiOnOff(ROI *roi, int dimx, int dimy, char **m);
164extern void roiOnOffPrint(int dimx, int dimy, char **m);
165extern int roiSave(const char *fname, ROI_list *rl); /* Save all ROIs in list */
166extern int roiAppend(char *fname, ROI_list *rl, int ind);
167/*****************************************************************************/
168
169/*****************************************************************************/
170#endif // _LIBTPCROI_H
Header file for libtpcimgio.
Header file for libtpcmisc.
int roi_mplane(int matnum)
Definition ecat_roi.c:636
void roi_empty(ROI_list *rl)
Definition ecat_roi.c:18
int roi_append(FILE *fp, ROI *roi)
Definition ecat_roi.c:564
void roiOnOffPrint(int dimx, int dimy, char **m)
int roi_mframe(int matnum)
Definition ecat_roi.c:649
int roiComputeElli(ROI *roi)
void roi_delete(ROI_list *rl, ROI *roi)
Definition ecat_roi.c:89
int roiRead(const char *fname, ROI_list *rl)
int roi_compute_rect(ROI *roi)
Definition ecat_roi.c:244
int roi_save(const char *fname, ROI_list *rl)
Definition ecat_roi.c:530
void roiDel(ROI_list *rl, int ind)
void roi_print(ROI *roi)
Definition ecat_roi.c:333
void roi_delete_n(ROI_list *rl, int index)
Definition ecat_roi.c:64
void roi_init(ROI_list *rl)
Definition ecat_roi.c:49
int roiComputeCirc(ROI *roi)
int roi_read(const char *fname, ROI_list *rl)
Definition ecat_roi.c:114
char roierrmsg[128]
Definition ecat_roi.c:11
int roi_compute_circle(ROI *roi)
Definition ecat_roi.c:287
int roi_compute_ellipse(ROI *roi)
Definition ecat_roi.c:311
int roiAppend(char *fname, ROI_list *rl, int ind)
int roiSave(const char *fname, ROI_list *rl)
int roiComputeRect(ROI *roi)
Definition ecat_roi.c:264
int roiFillGaps(int *x, int *y, int nr, int **ffx, int **ffy)
int roi_append_n(FILE *fp, ROI_list *rl, int ind)
Definition ecat_roi.c:595
int jsqrt(int n)
Definition ecat_roi.c:617
int roiOnOff(ROI *roi, int dimx, int dimy, char **m)
int roi_onoff(ROI *roi, int dimx, int dimy, char **m)
Definition ecat_roi.c:451
ROI * roi
Definition libtpcroi.h:104
RoiList * rois
Definition libtpcroi.h:96
float zoom
Definition libtpcroi.h:47
int pos_x
Definition libtpcroi.h:57
int t
Definition libtpcroi.h:65
int * x
Definition libtpcroi.h:72
int pos_y
Definition libtpcroi.h:59
int type
Definition libtpcroi.h:53
int matnum
Definition libtpcroi.h:51
int point_nr
Definition libtpcroi.h:78
int roi
Definition libtpcroi.h:67
int status
Definition libtpcroi.h:55
int h
Definition libtpcroi.h:63
void * userdata
Definition libtpcroi.h:80
float recon_zoom
Definition libtpcroi.h:49
int * y
Definition libtpcroi.h:75
int w
Definition libtpcroi.h:61
struct _RoiList * prev
Definition libtpcroi.h:90
ROI * roi
Definition libtpcroi.h:86
struct _RoiList * next
Definition libtpcroi.h:88