TPCCLIB
Loading...
Searching...
No Matches
libtpcimgp.h
Go to the documentation of this file.
1
5#ifndef _LIBTPCIMGP_H
6#define _LIBTPCIMGP_H
7/*****************************************************************************/
8
9/*****************************************************************************/
10#include "tpcclibConfig.h"
11/*****************************************************************************/
12//#include <omp.h>
13/*****************************************************************************/
14#include <stdio.h>
15#include <string.h>
16#include <math.h>
17#include <stdint.h>
18#include <stdlib.h>
19#include <strings.h>
20#include <ctype.h>
21#include <float.h>
22#include <unistd.h>
23#include <locale.h>
24#include <time.h>
25/*****************************************************************************/
26#include "libtpcmisc.h"
27#include "libtpcimgio.h"
28/*****************************************************************************/
29
30/*****************************************************************************/
32#define PET_GRAYSCALE 1
34#define PET_GRAYSCALE_INV 2
36#define PET_RAINBOW 3
38#define PET_RAINBOW_WB 4
39/*****************************************************************************/
41typedef struct point{
43 float x;
45 float y;
47 float z;
48} point;
49/*****************************************************************************/
50
51/*****************************************************************************/
52/* imgarithm */
53extern int imgArithm(IMG *img1, IMG *img2, char operation, float ulimit, int verbose);
54extern int imgArithmConst(IMG *img, float operand, char operation, float ulimit, int verbose);
55extern int imgArithmFrame(IMG *img1, IMG *img2, char operation, float ulimit, int verbose);
56extern int imgLn(IMG *img);
57extern int imgLog10(IMG *img);
58extern int imgAbs(IMG *img);
59extern int imgInv(IMG *img);
60extern int imgFrameIntegral(IMG *img, int first, int last, IMG *iimg, int verbose);
61extern int imgRawCountsPerTime(IMG *img, int operation);
62extern int imgConvertUnit(IMG *img, char *unit);
63extern int imgAUMC(IMG *img, IMG *oimg, int verbose);
64extern int imgMRT(IMG *img, IMG *oimg, int verbose);
65/*****************************************************************************/
66
67/*****************************************************************************/
68/* imgeval.c */
69extern int imgAverageTAC(IMG *img, float *tac);
70extern int imgAverageMaskTAC(IMG *img, IMG *timg, float *tac);
71extern int imgAverageAUC(IMG *img, float *avgauc);
72extern int imgMaskTAC(IMG *img, IMG *mask, double *tac, int verbose);
73extern int imgMaskRoiNr(IMG *img, INTEGER_LIST *list);
74extern int imgVoiMaskTAC(IMG *img, IMG *mask, int mv, double *tac, int verbose);
75/*****************************************************************************/
76
77/*****************************************************************************/
78/* imgfilter */
79extern int imgGaussianFIRFilter(IMG *img, float xsd, float ysd, float zsd, double tolerance, int verbose);
80extern int imgGaussianAMFilter(
81 IMG *img, float xsd, float ysd, float zsd, int passNr, double tolerance, int verbose
82);
83extern int filterAMGaussian(double *a, int n, int passNr, double nu, double scale, int termNr);
84extern int filterHSSBE(int n, int r);
85extern double filterAMLB(double *a, int n, double nu, int termNr);
86extern int imgGaussianEBoxFilter(
87 IMG *img, float xsd, float ysd, float zsd, int passNr, int verbose
88);
89extern int filterEbox(double *a, int n, double wob, double wib, int rib, int passNr);
90extern int fMean1DFilter(float *data, const int n, const int s);
91extern int imgMeanFilter(IMG *img, int xn, int yn, int zn, int tn, int verbose);
92/*****************************************************************************/
93
94/*****************************************************************************/
95/* imgflips */
96extern void imgFlipHorizontal(IMG *img);
97extern void imgFlipVertical(IMG *img);
98extern void imgFlipPlanes(IMG *img);
99extern int imgFlipRight(IMG *img);
100extern int imgFlipAbove(IMG *img);
101extern int imgMeanZ(IMG *img1, IMG *img2);
102/*****************************************************************************/
103
104/*****************************************************************************/
105/* imgframe */
106extern int imgFramesCheck(IMG *img, int verbose);
107extern int imgFrameGapFill(IMG *img, int verbose);
108extern int imgDeleteFrameOverlap_old(IMG *img);
109extern int imgDeleteFrameOverlap(IMG *img);
110extern int imgSmoothOverFrames(IMG *img, int n);
111extern int imgGetFrameDiff(IMG *img, IMG *dimg, IMG *mimg, int verbose);
112extern int imgGetFrameDyn(IMG *img, IMG *iimg, IMG *dimg, int verbose);
113/* Deprecated functions. Please don't use these anymore */
115#define NEW_imgDeleteFrameOverlap imgDeleteFrameOverlap
117/*****************************************************************************/
118
119/*****************************************************************************/
120/* imgscanner */
121extern int imgSetScanner(IMG *img, int scanner_type);
122/*****************************************************************************/
123
124/*****************************************************************************/
125/* imgsegm */
126extern int imgsegmThresholdMask(
127 IMG *img, float minValue, float maxValue, IMG *timg
128);
129extern int imgsegmThresholdByMask(
130 IMG *img, IMG *template, float minValue, float maxValue
131);
132extern int imgsegmThreshold(
133 IMG *img, float minValue, float maxValue
134);
135extern int imgsegmMaskToCluster(
136 IMG *img
137);
139 IMG *sumimg, IMG *cluster, float *max, int *plane, int *row, int *col
140);
141extern int imgsegmClusterExpand(
142 IMG *cluster, IMG *sum, IMG *dynamic, int clusterID,
143 int pi, int ri, int ci, int pj, int rj, int cj, float CVlim, float CClim,
144 int verbose
145);
146extern float imgsegmPearson(
147 float *x, float *y, long long nr
148);
149extern int imgsegmClusterMean(
150 IMG *dimg, IMG *cimg, int clusterID, float *avg, int verbose
151);
152extern int imgsegmCheckNeighbours(
153 IMG *cimg, int pi, int ri, int ci
154);
155extern int imgsegmFindBestNeighbour(
156 IMG *dimg, IMG *cimg, int pi, int ri, int ci
157);
158extern int imgsegmSimilar(
159 IMG *input, int smoothDim, int smoothNr, IMG *output, int verbose
160);
161extern int imgsegmCalcMRL(
162 float y1[], float y2[], long long n
163);
164/*****************************************************************************/
165
166/*****************************************************************************/
167/* imgthreshold */
168extern int imgThresholding(IMG *img, float threshold_level, long long *thr_nr);
169extern int imgThresholdingLowHigh(
170 IMG *img, float lower_threshold_level, float upper_threshold_level,
171 IMG *timg, long long *lower_thr_nr, long long *upper_thr_nr
172);
173extern int imgOutlierFilter(IMG *img, float limit);
174extern int imgThresholdMaskCount(
175 IMG *img, float minValue, float maxValue, IMG *timg, long long *count
176);
177extern int imgThresholdMask(
178 IMG *img, float minValue, float maxValue, IMG *timg
179);
180extern int imgThresholdByMask(IMG *img, IMG *templt, float thrValue);
181extern void imgCutoff(IMG *image, float cutoff, int mode);
183 IMG *img, const int sz, const int sy, const int sx, float lthr, float uthr,
184 IMG *mask, int verbose
185);
186/*****************************************************************************/
187
188/*****************************************************************************/
189/* imgtiff */
190extern int tiffWriteImg(
191 IMG *img, int plane, int frame, float *maxvalue, int colorscale,
192 char *fname, int matXdim, int matYdim,
193 int verbose, char *status
194);
195/*****************************************************************************/
196
197/*****************************************************************************/
198/* imgtransform */
199extern int img2cube(IMG *img1, int dim, IMG *img2);
200extern void imgScale(IMG *src, IMG *targ, float zoom, int method);
201extern void integerScale(int frame, float ***src, float **targ, int width, int height, int zoom);
202extern int imgShrink(IMG *img1, IMG *img2, int doz);
203extern int imgSwell(IMG *img1, IMG *img2, int doz);
204/*****************************************************************************/
205
206/*****************************************************************************/
207/* mask.c */
208extern long long imgMaskCount(IMG *img);
209extern int imgMaskErode(IMG *img, IMG *se);
210extern int imgMaskDilate(IMG *img, IMG *se);
211extern int imgStructuringElement(IMG *img, const int structuring_element, int verbose);
212extern void imgMaskInvert(IMG *img);
213extern int imgMaskConjunction(IMG *mask1, IMG *mask2);
214extern int imgMaskRegionLabeling(IMG *mask1, IMG *mask2, int *n, int verbose);
215extern int imgMaskFloodFill(IMG *m, int sz, int sy, int sx, int label, long long *n, int verbose);
216extern int imgMaskCloak(IMG *img, int dim, float id);
217/*****************************************************************************/
218
219/*****************************************************************************/
220/* point */
221extern int pRound(float);
222extern float getDistance(point, point);
223extern float getAngle(point, point);
224/*****************************************************************************/
225
226/*****************************************************************************/
227#endif // _LIBTPCIMGP_H
Header file for libtpcimgio.
int imgAverageAUC(IMG *img, float *avgauc)
Definition imgeval.c:91
int imgThresholdMask(IMG *img, float minValue, float maxValue, IMG *timg)
int imgsegmThresholdMask(IMG *img, float minValue, float maxValue, IMG *timg)
Definition imgsegm.c:39
int imgsegmCheckNeighbours(IMG *cimg, int pi, int ri, int ci)
Definition imgsegm.c:398
int filterHSSBE(int n, int r)
Definition imgfilter.c:352
int imgsegmClusterMean(IMG *dimg, IMG *cimg, int clusterID, float *avg, int verbose)
Definition imgsegm.c:357
int imgsegmClusterExpand(IMG *cluster, IMG *sum, IMG *dynamic, int clusterID, int pi, int ri, int ci, int pj, int rj, int cj, float CVlim, float CClim, int verbose)
Definition imgsegm.c:219
void imgFlipVertical(IMG *img)
Definition imgflips.c:34
int imgSmoothOverFrames(IMG *img, int n)
Definition imgframe.c:136
int imgsegmMaskToCluster(IMG *img)
Definition imgsegm.c:142
int pRound(float)
Definition point.c:15
int imgAverageTAC(IMG *img, float *tac)
Definition imgeval.c:15
int img2cube(IMG *img1, int dim, IMG *img2)
int imgAUMC(IMG *img, IMG *oimg, int verbose)
Definition imgarithm.c:540
int imgLog10(IMG *img)
Definition imgarithm.c:270
float getAngle(point, point)
Definition point.c:55
void integerScale(int frame, float ***src, float **targ, int width, int height, int zoom)
int imgDeleteFrameOverlap_old(IMG *img)
Definition imgframe.c:109
int imgMaskTAC(IMG *img, IMG *mask, double *tac, int verbose)
Definition imgeval.c:126
int imgGetFrameDyn(IMG *img, IMG *iimg, IMG *dimg, int verbose)
Definition imgframe.c:249
int imgMRT(IMG *img, IMG *oimg, int verbose)
Definition imgarithm.c:606
long long imgMaskCount(IMG *img)
Definition mask.c:15
int fMean1DFilter(float *data, const int n, const int s)
Definition imgfilter.c:595
int imgMaskRegionLabeling(IMG *mask1, IMG *mask2, int *n, int verbose)
Definition mask.c:279
int imgMaskCloak(IMG *img, int dim, float id)
Definition mask.c:429
int imgMaskFloodFill(IMG *m, int sz, int sy, int sx, int label, long long *n, int verbose)
Definition mask.c:352
void imgFlipHorizontal(IMG *img)
Definition imgflips.c:13
int imgMeanZ(IMG *img1, IMG *img2)
Definition imgflips.c:157
int imgGaussianEBoxFilter(IMG *img, float xsd, float ysd, float zsd, int passNr, int verbose)
Definition imgfilter.c:408
void imgScale(IMG *src, IMG *targ, float zoom, int method)
int imgMaskRoiNr(IMG *img, INTEGER_LIST *list)
Definition imgeval.c:176
int imgArithm(IMG *img1, IMG *img2, char operation, float ulimit, int verbose)
Definition imgarithm.c:16
int imgFlipRight(IMG *img)
Definition imgflips.c:73
int imgsegmFindBestNeighbour(IMG *dimg, IMG *cimg, int pi, int ri, int ci)
Definition imgsegm.c:427
int imgGetFrameDiff(IMG *img, IMG *dimg, IMG *mimg, int verbose)
Definition imgframe.c:180
int imgSetScanner(IMG *img, int scanner_type)
Definition imgscanner.c:14
int imgAbs(IMG *img)
Definition imgarithm.c:292
void imgCutoff(IMG *image, float cutoff, int mode)
int imgsegmFindMaxOutsideClusters(IMG *sumimg, IMG *cluster, float *max, int *plane, int *row, int *col)
Definition imgsegm.c:166
int tiffWriteImg(IMG *img, int plane, int frame, float *maxvalue, int colorscale, char *fname, int matXdim, int matYdim, int verbose, char *status)
Definition imgtiff.c:15
float imgsegmPearson(float *x, float *y, long long nr)
Definition imgsegm.c:322
int imgMeanFilter(IMG *img, int xn, int yn, int zn, int tn, int verbose)
Definition imgfilter.c:624
int imgGaussianFIRFilter(IMG *img, float xsd, float ysd, float zsd, double tolerance, int verbose)
Definition imgfilter.c:18
void imgMaskInvert(IMG *img)
Definition mask.c:216
int imgsegmThreshold(IMG *img, float minValue, float maxValue)
Definition imgsegm.c:116
int imgsegmThresholdByMask(IMG *img, IMG *template, float minValue, float maxValue)
Definition imgsegm.c:83
int imgFrameGapFill(IMG *img, int verbose)
Definition imgframe.c:50
int imgVoiMaskTAC(IMG *img, IMG *mask, int mv, double *tac, int verbose)
Definition imgeval.c:214
int imgFrameIntegral(IMG *img, int first, int last, IMG *iimg, int verbose)
Definition imgarithm.c:346
int imgConvertUnit(IMG *img, char *unit)
Definition imgarithm.c:480
int imgThresholding(IMG *img, float threshold_level, long long *thr_nr)
int imgStructuringElement(IMG *img, const int structuring_element, int verbose)
Definition mask.c:126
int imgAverageMaskTAC(IMG *img, IMG *timg, float *tac)
Definition imgeval.c:34
int imgMaskDilate(IMG *img, IMG *se)
Definition mask.c:80
int imgRawCountsPerTime(IMG *img, int operation)
Definition imgarithm.c:442
int imgsegmCalcMRL(float y1[], float y2[], long long n)
Definition imgsegm.c:567
int imgRegionGrowingByThreshold(IMG *img, const int sz, const int sy, const int sx, float lthr, float uthr, IMG *mask, int verbose)
int filterAMGaussian(double *a, int n, int passNr, double nu, double scale, int termNr)
Definition imgfilter.c:314
int imgShrink(IMG *img1, IMG *img2, int doz)
double filterAMLB(double *a, int n, double nu, int termNr)
Definition imgfilter.c:372
int imgInv(IMG *img)
Definition imgarithm.c:314
int imgLn(IMG *img)
Definition imgarithm.c:248
void imgFlipPlanes(IMG *img)
Definition imgflips.c:55
int imgMaskErode(IMG *img, IMG *se)
Definition mask.c:34
int imgsegmSimilar(IMG *input, int smoothDim, int smoothNr, IMG *output, int verbose)
Definition imgsegm.c:478
int filterEbox(double *a, int n, double wob, double wib, int rib, int passNr)
Definition imgfilter.c:558
int imgSwell(IMG *img1, IMG *img2, int doz)
int imgThresholdMaskCount(IMG *img, float minValue, float maxValue, IMG *timg, long long *count)
int imgArithmConst(IMG *img, float operand, char operation, float ulimit, int verbose)
Definition imgarithm.c:100
int imgFlipAbove(IMG *img)
Definition imgflips.c:115
int imgThresholdByMask(IMG *img, IMG *templt, float thrValue)
int imgArithmFrame(IMG *img1, IMG *img2, char operation, float ulimit, int verbose)
Definition imgarithm.c:168
float getDistance(point, point)
Definition point.c:31
int imgGaussianAMFilter(IMG *img, float xsd, float ysd, float zsd, int passNr, double tolerance, int verbose)
Definition imgfilter.c:173
int imgOutlierFilter(IMG *img, float limit)
int imgThresholdingLowHigh(IMG *img, float lower_threshold_level, float upper_threshold_level, IMG *timg, long long *lower_thr_nr, long long *upper_thr_nr)
int imgMaskConjunction(IMG *mask1, IMG *mask2)
Definition mask.c:238
int imgFramesCheck(IMG *img, int verbose)
Definition imgframe.c:15
int imgDeleteFrameOverlap(IMG *img)
Definition imgframe.c:77
Header file for libtpcmisc.
float z
Definition libtpcimgp.h:47
float y
Definition libtpcimgp.h:45
float x
Definition libtpcimgp.h:43