-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsnom-mat.h
More file actions
84 lines (64 loc) · 3.95 KB
/
snom-mat.h
File metadata and controls
84 lines (64 loc) · 3.95 KB
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
74
75
76
77
78
79
80
81
82
83
84
/**************************************************************************************
**** Mathematische und verwandte Routinen
**************************************************************************************/
/* Achtung: NR => Basis der Array ist a[1]!!! */
void realft(LPFLOAT data, LONG n, int isign);
// Polynom n-ter Ordnung fuer MittelFitBild und andere ...
double fPolyWert( double x, LPDOUBLE pf, int n );
// Macht eine FFT-Filterung; die Frequenzwerte werden mit den Werten
// aus pfFilter multipliziert. ACHTUNG pfFilter muss iSize gross sein!
BOOLEAN BildFFTFilter( LPBILD pBild, LONG w, LONG h, LPFLOAT pfFilter, int iSize );
// 9.2.99
// Autokorrelation berechnen
BOOLEAN Autokorrelation( LPFLOAT pfZiel, LPFLOAT pfDaten, int iMaxPts, BOOLEAN UseZeroMean );
// 4/98
// Numerisch Differenzieren
BOOLEAN Differential( LPFLOAT pfDaten, int iPunkte );
// 10.11.98
// Correlation function (berechnet Korrelationslänge)
void CorrelationFunction( HFILE hFile, LPUWORD puDaten, LONG w, LONG h, double dSkal );
/**** Berechnet die mittlere Rauhigkeit und die mittlere Höhe im Bild ****/
void RMSArea( LPUWORD puDaten, LONG ww, LONG x, LONG y, LONG w, LONG h, double dSkal, LPDOUBLE pfMeanH, LPDOUBLE pfRMS, LPFLOAT pfQuadrate );
// 18.2.98
void MeadianArea( LPUWORD puDaten, LONG ww, LONG x, LONG y, LONG w, LONG h, double dSkal, UWORD maxhgt, LPDOUBLE pfMedian, LPDOUBLE pfRMS );
// 18.11.11
/**** Berechnet die mittlere Rauhigkeit und die mittlere Höhe auf einer Scanline ****/
void RMSLine( LPUWORD puDaten, LONG x, LONG y, LONG w, LONG h, LONG ww, double m, double fSkal, LPDOUBLE pfMeanH, LPDOUBLE pfRMS );
// 18.2.98
/**** Rechnet mit Bild und Wert ****/
BOOLEAN BildCalcConst( LPBILD pDestBild, LONG w, LONG h, UCHAR cOperand, double wert, BOOL bOverflow );
// 9.6.97, 9.8.98
/**** Rechnet mit 2 Bildern ****/
BOOL BildCalcBild( LPBMPDATA pDest, WORKMODE DestMode, WORD cOperand, LPBMPDATA puWerte, WORKMODE WerteMode, BOOL bOverflow );
// 9.6.97, 9.8.98
// Bestimmt die Mittelwerte in einer Zeile (für MittelBild und den Ausgleich beim Messen)
BOOLEAN MittelZeile( LPUWORD puZeile, LPUCHAR puMaske, LONG w, LPDOUBLE pfMittel, ULONG n );
// 26.11.97, 31.7.98
/**** Mittelung eines Bildes analytisch zeilenweise ****/
BOOLEAN MittelBild( LPBMPDATA pBmp, LPBILD pBild, LONG w, LONG h, int n );
// 26.11.97, 31.7.98
/**** fitting an image with order n by fittig linewise under an angle ****/
BOOLEAN MittelFitBildRotate( LPBMPDATA pBmp, LPBILD pBild, LONG w, LONG h, int n, double angle );
//BOOLEAN MittelFitBild( LPBMPDATA pBmp, LPBILD pBild, LONG w, LONG h, int n );
// 26.11.97, 31.7.98, 1.7.2015
/* Interpoliert die maskierte Region horizontal durch ein Polynom n. Grades */
BOOLEAN InterpolateVertikalBild( LPBMPDATA pBmp, LPBILD pBild, LONG w, LONG h, int grad );
// 20.12.98
/* Interpoliert die maskierte Region horizontal durch ein Polynom n. Grades */
BOOLEAN InterpolateHorizontalBild( LPBMPDATA pBmp, LPBILD pBild, LONG w, LONG h, int grad );
// 20.12.98
// Berechnet ein Polygon einer best-fit Ebenen furch die nicht maskierten Teile des Bildes
BOOLEAN Fit3DBild( LPBMPDATA pBmp, LPUWORD puData, LONG w, LONG h, int n, double *x_poly, double *y_poly );
// 1.7.02
/**** Mittelung eines Bildes analytisch ****/
/**** Vorher werden jedoch alle unmaskierten Zeilen/Spalten gemittelt ****/
/**** n ist die Ordnung der Mittelung; ****/
/**** xy_what gibt an ob x(Bit 0) und/oder y (Bit 1) gefitted werden sollen ... ****/
BOOLEAN MittelFit3DBild( LPBMPDATA pBmp, LPBILD pBild, LONG w, LONG h, int n, int xy_what );
// 24.2.00
// Mark all neighbouring points higher (lower) as the startpoint iLevel in the bitmap pArea (iAreaWW wide)
void MarkUpperArea( LPUWORD puData, LONG w, LONG h, LPBYTE pArea, LONG iAreaWW, LONG iStartX, LONG iStartY, UWORD iLevel );
// 22.4.02
// Calc triangle surface area (not trivial!)
double TriangleArea( UWORD z00, UWORD z01, UWORD z11, double x2, double y2, double z2 );
// 14.6.02