CVB++ 15.0
c_foundation.h
1#pragma once
2#if defined _WIN32
3
4#if defined __GNUC__ && !defined CVB_SHOW_WARNINGS
5# pragma GCC system_header
6#endif // __GNUC__
7
8#include <cstddef>
9#include <cstdint>
10
11#include "../namespace.hpp"
12
13#include "c_img.h"
14
15
16namespace Cvb
17{
18
19CVB_BEGIN_INLINE_NS
20
21namespace CExports
22{
23
24
25
26
27
28/* DLL object types */
29typedef void * FBLOB;
30typedef void * NLTRANSFORMATION;
31typedef void * IMGMOMENTS;
32typedef void * VECTOR2D;
33typedef void * LINE2D;
34
35/* Enums and types */
36enum TThresholdComparison
37{
38 TH_Less = 0,
39 TH_LessOrEqual = 1,
40 TH_Equal = 2,
41 TH_GreaterOrEqual = 3,
42 TH_Greater = 4
43};
44enum TMorphologyMask
45{
46 MM_Custom = 0,
47 MM_Square = 1,
48 MM_Rect = 2,
49 MM_Cross = 3,
50 MM_Circle = 4,
51 MM_Ellipse = 5
52};
53enum TFilterMask
54{
55 FM_3x3 = 0,
56 FM_5x5 = 1,
57 FM_7x7 = 2
58};
59enum TMomentsCalculation
60{
61 MC_FavorNone = 0,
62 MC_FavorSpeed = 1,
63 MC_FavorAccuracy = 2
64};
65enum TInterpolationMode
66{
67 IP_NearestNeighbour = 0,
68 IP_Linear = 1,
69 IP_Cubic = 2,
70 IP_Lanczos = 3,
71 IP_Supersample = 4
72};
73enum TCannyEdgeFilter
74{
75 CE_Scharr = 0,
76 CE_Sobel = 1,
77 CE_Sobel2nd = 2
78};
79enum TDistanceNorm
80{
81 DN_LInf = 0,
82 DN_L1 = 1,
83 DN_L2 = 2
84};
85enum TDynamicThresholdNorm
86{
87 DTN_Mean = 0,
88 DTN_MinMax = 1
89};
90enum TWaveletFilter
91{
92 WT_HAAR_FILTER = 0,
93 WT_DAUB2_FILTER = 1,
94 WT_DAUB3_FILTER = 2,
95 WT_DAUB4_FILTER = 3,
96 WT_BI_1_3 = 4,
97 WT_BI_1_5 = 5,
98 WT_CUSTOM = 20
99};
100enum TCalibrationPatternStyle
101{
102 CPS_Uniform_Dots,
103 CPS_Asymmetric_Dots
104};
105enum TCalibrationPatternContrast
106{
107 CPC_Black_On_White,
108 CPC_White_On_Black
109};
110enum CVFScanDirection
111{
112 CVFSD_X = 0,
113 CVFSD_Y = 1
114};
115
116
117/* Nonlinear Transformation Functions */
118CVB_DEF_CAPI_X (cvbres_t, ApplyInverseNLTransform, (NLTRANSFORMATION Transformation, double& X, double& Y))
119CVB_DEF_CAPI_X (cvbres_t, ApplyNLTransform, (NLTRANSFORMATION Transformation, double& X, double& Y))
120CVB_DEF_CAPI_X (cvbres_t, ApplyNLTransformPixelList, (NLTRANSFORMATION Transformation, PIXELLIST List))
121CVB_DEF_CAPI_X (cvbres_t, ApplyInverseNLTransformPixelList, (NLTRANSFORMATION Transformation, PIXELLIST List))
122CVB_DEF_CAPI_X (cvbres_t, CreateInverseNLTransformedImage, (IMG Image, NLTRANSFORMATION Transformation,
123 cvbdim_t TargetWidth, cvbdim_t TargetHeight,
124 cvbdim_t XTargetOffset, cvbdim_t YTargetOffset,
125 IMG& Out ))
126CVB_DEF_CAPI_X (cvbres_t, CreateNLTransform, (PIXELLIST OriginalPixels, PIXELLIST TransformedPixels,
127 cvbval_t Order, TFProgress Callback,
128 void *PrivateData, NLTRANSFORMATION& Transformation,
129 double& Quality))
130CVB_DEF_CAPI_X (cvbres_t, CreateNLTransformedImage, (IMG Image, NLTRANSFORMATION Transformation,
131 cvbdim_t TargetWidth, cvbdim_t TargetHeight,
132 cvbdim_t XTargetOffset, cvbdim_t YTargetOffset,
133 IMG& Out))
134CVB_DEF_CAPI (cvbbool_t, IsNLTransform, (NLTRANSFORMATION Transformation))
135CVB_DEF_CAPI (cvbval_t, NLTransformNumCoefficients, (NLTRANSFORMATION Transformation))
136CVB_DEF_CAPI (cvbval_t, NLTransformOrder, (NLTRANSFORMATION Transformation))
137CVB_DEF_CAPI_X (cvbbool_t, NLTransformCoefficients, (NLTRANSFORMATION Transformation,
138 double *CoeffsTransX, double *CoeffsTransY,
139 double *CoeffsInvTransX, double *CoeffsInvTransY))
140CVB_DEF_CAPI_X (cvbbool_t, LoadNLTransformFile, (const char* FileName, NLTRANSFORMATION& Transformation))
141CVB_DEF_CAPI_X (cvbbool_t, LoadNLTransformFileW, (const wchar_t* FileName, NLTRANSFORMATION& Transformation))
142CVB_DEF_CAPI_X (cvbbool_t, WriteNLTransformFile, (NLTRANSFORMATION Transformation, const char* FileName))
143CVB_DEF_CAPI_X (cvbbool_t, WriteNLTransformFileW, (NLTRANSFORMATION Transformation, const wchar_t* FileName))
144CVB_DEF_CAPI_X (cvbres_t, CreateCalibrationPattern, (cvbdim_t width, cvbdim_t height, cvbval_t numColumns, cvbval_t numRows,
145 TCalibrationPatternStyle style, TCalibrationPatternContrast contrast, IMG& imgOut))
146CVB_DEF_CAPI_X (cvbres_t, CreateCalibrationPatternA4, (cvbval_t numColumns, cvbval_t numRows, double borderH, double borderV, cvbval_t dpi, cvbbool_t landscape,
147 TCalibrationPatternStyle style, TCalibrationPatternContrast contrast,
148 IMG& imgOut))
149CVB_DEF_CAPI_X (cvbres_t, CreateCalibrationPatternLetter, (cvbval_t numColumns, cvbval_t numRows, double borderH, double borderV, cvbval_t dpi, cvbbool_t landscape,
150 TCalibrationPatternStyle style, TCalibrationPatternContrast contrast,
151 IMG& imgOut))
152CVB_DEF_CAPI_X (cvbres_t, GetCalibrationLists, (IMG img, cvbdim_t index, TCalibrationPatternStyle style, TCalibrationPatternContrast contrast,
153 TArea aoi, cvbdim_t gridSpacing, cvbval_t minContrast, double maxRatio,
154 PIXELLIST& originalPixels, PIXELLIST& transformedPixels))
155
156/* Functions that convert the dynamic range of images */
157CVB_DEF_CAPI_X (cvbres_t, ConvertTo8BPPUnsigned, (IMG ImgIn, IMG& ImgOut))
158CVB_DEF_CAPI_X (cvbres_t, ConvertTo16BPPUnsigned, (IMG ImgIn, IMG& ImgOut))
159CVB_DEF_CAPI_X (cvbres_t, ConvertTo16BPPSigned, (IMG ImgIn, IMG& ImgOut))
160CVB_DEF_CAPI_X (cvbres_t, ConvertTo32BPPSigned, (IMG ImgIn, IMG& ImgOut))
161CVB_DEF_CAPI_X (cvbres_t, ConvertTo32BPPFloat, (IMG ImgIn, IMG& ImgOut))
162CVB_DEF_CAPI_X (cvbres_t, ScaleTo8BPPUnsigned, (IMG ImgIn, IMG& ImgOut))
163CVB_DEF_CAPI_X (cvbres_t, ScaleTo16BPPUnsigned, (IMG ImgIn, IMG& ImgOut))
164CVB_DEF_CAPI_X (cvbres_t, ScaleTo16BPPSigned, (IMG ImgIn, IMG& ImgOut))
165CVB_DEF_CAPI_X (cvbres_t, ScaleTo32BPPSigned, (IMG ImgIn, IMG& ImgOut))
166CVB_DEF_CAPI_X (cvbres_t, ScaleTo32BPPFloat, (IMG ImgIn, IMG& ImgOut, double MinVal, double MaxVal))
167
168/* Functions that manipulate image contents */
169CVB_DEF_CAPI_X (cvbres_t, InitializeImageRect, (IMG ImgIn, cvbdim_t left, cvbdim_t top,
170 cvbdim_t right, cvbdim_t bottom, double *ValuesIn))
171CVB_DEF_CAPI_X (cvbres_t, SwapRGBChannels, (IMG ImgIn, cvbdim_t Order[3], IMG& ImgOut))
172CVB_DEF_CAPI_X (cvbres_t, AddUniformNoise, (IMG ImgIn, double Lowest, double Highest,
173 cvbval_t Seed, IMG& ImgOut))
174CVB_DEF_CAPI_X (cvbres_t, AddGaussNoise, (IMG ImgIn, double Mean, double StdDev,
175 cvbval_t Seed, IMG& ImgOut))
176CVB_DEF_CAPI_X (cvbres_t, CreateFilterTestImage, (cvbdim_t Width, cvbdim_t Height, cvbdim_t Dimension,
177 cvbval_t BitsPerPixel, cvbbool_t Signed, cvbbool_t Float,
178 IMG& ImgOut))
179CVB_DEF_CAPI_X (cvbres_t, CreateGreyRamp, (cvbdim_t Width, cvbdim_t Height, cvbdim_t Dimension,
180 cvbval_t BitsPerPixel, cvbbool_t Signed, cvbbool_t Float,
181 double Offset, double Slope, cvbbool_t AxisHorizontal, cvbbool_t AxisVertical,
182 IMG& ImgOut))
183
184/* Arithmetic and logical functions */
185CVB_DEF_CAPI_X (cvbres_t, AddImages, (IMG ImgIn1, IMG ImgIn2, cvbbool_t ScaleResults, IMG& ImgOut))
186CVB_DEF_CAPI_X (cvbres_t, AddConstant, (IMG ImgIn, double Values[], cvbbool_t ScaleResults, IMG& ImgOut))
187CVB_DEF_CAPI_X (cvbres_t, MultiplyImages, (IMG ImgIn1, IMG ImgIn2, cvbbool_t ScaleResults, IMG& ImgOut))
188CVB_DEF_CAPI_X (cvbres_t, MultiplyConstant, (IMG ImgIn, double Values[], cvbbool_t ScaleResults, IMG& ImgOut))
189CVB_DEF_CAPI_X (cvbres_t, SubtractImages, (IMG ImgIn1, IMG ImgIn2, IMG& ImgOut))
190CVB_DEF_CAPI_X (cvbres_t, SubtractConstant, (IMG ImgIn, double Values[], IMG& ImgOut))
191CVB_DEF_CAPI_X (cvbres_t, DivideImages, (IMG ImgIn1, IMG ImgIn2, cvbval_t UpShift, IMG& ImgOut))
192CVB_DEF_CAPI_X (cvbres_t, DivideConstant, (IMG ImgIn, double Values[], IMG& ImgOut))
193CVB_DEF_CAPI_X (cvbres_t, AbsoluteImage, (IMG ImgIn, IMG& ImgOut))
194CVB_DEF_CAPI_X (cvbres_t, SubtractImagesAbsolute, (IMG ImgIn1, IMG ImgIn2, IMG& ImgOut))
195CVB_DEF_CAPI_X (cvbres_t, SubtractConstantAbsolute, (IMG ImgIn, double Values[], IMG& ImgOut))
196CVB_DEF_CAPI_X (cvbres_t, SquareImage, (IMG ImgIn, cvbbool_t ScaleResults, IMG& ImgOut))
197CVB_DEF_CAPI_X (cvbres_t, SquareRootImage, (IMG ImgIn, cvbbool_t ScaleResults, IMG& ImgOut))
198CVB_DEF_CAPI_X (cvbres_t, AndImages, (IMG ImgIn1, IMG ImgIn2, IMG& ImgOut))
199CVB_DEF_CAPI_X (cvbres_t, AndConstant, (IMG ImgIn, cvbval_t Values[], IMG& ImgOut))
200CVB_DEF_CAPI_X (cvbres_t, NegateImage, (IMG ImgIn, IMG& ImgOut))
201CVB_DEF_CAPI_X (cvbres_t, OrImages, (IMG ImgIn1, IMG ImgIn2, IMG& ImgOut))
202CVB_DEF_CAPI_X (cvbres_t, OrConstant, (IMG ImgIn, cvbval_t Values[], IMG& ImgOut))
203CVB_DEF_CAPI_X (cvbres_t, XorImages, (IMG ImgIn1, IMG ImgIn2, IMG& ImgOut))
204CVB_DEF_CAPI_X (cvbres_t, XorConstant, (IMG ImgIn, cvbval_t Values[], IMG& ImgOut))
205CVB_DEF_CAPI_X (cvbres_t, UpShift, (IMG ImgIn, cvbval_t Values[], IMG& ImgOut))
206CVB_DEF_CAPI_X (cvbres_t, DownShift, (IMG ImgIn, cvbval_t Values[], IMG& ImgOut))
207
208/* Colour Space Conversion functions */
209CVB_DEF_CAPI_X (cvbres_t, ConvertRGBToYUV, (IMG ImgIn, IMG& ImgOut))
210CVB_DEF_CAPI_X (cvbres_t, ConvertYUVToRGB, (IMG ImgIn, IMG& ImgOut))
211CVB_DEF_CAPI_X (cvbres_t, ConvertRGBToYCbCr, (IMG ImgIn, IMG& ImgOut))
212CVB_DEF_CAPI_X (cvbres_t, ConvertYCbCrToRGB, (IMG ImgIn, IMG& ImgOut))
213CVB_DEF_CAPI_X (cvbres_t, ConvertRGBToXYZ, (IMG ImgIn, IMG& ImgOut))
214CVB_DEF_CAPI_X (cvbres_t, ConvertXYZToRGB, (IMG ImgIn, IMG& ImgOut))
215CVB_DEF_CAPI_X (cvbres_t, ConvertRGBToLUV, (IMG ImgIn, IMG& ImgOut))
216CVB_DEF_CAPI_X (cvbres_t, ConvertLUVToRGB, (IMG ImgIn, IMG& ImgOut))
217CVB_DEF_CAPI_X (cvbres_t, ConvertRGBToLab, (IMG ImgIn, cvbbool_t UseLab16, IMG& ImgOut))
218CVB_DEF_CAPI_X (cvbres_t, ConvertLabToRGB, (IMG ImgIn, IMG& ImgOut))
219CVB_DEF_CAPI_X (cvbres_t, ConvertRGBToYCC, (IMG ImgIn, IMG& ImgOut))
220CVB_DEF_CAPI_X (cvbres_t, ConvertYCCToRGB, (IMG ImgIn, IMG& ImgOut))
221CVB_DEF_CAPI_X (cvbres_t, ConvertRGBToHLS, (IMG ImgIn, IMG& ImgOut))
222CVB_DEF_CAPI_X (cvbres_t, ConvertHLSToRGB, (IMG ImgIn, IMG& ImgOut))
223CVB_DEF_CAPI_X (cvbres_t, ConvertRGBToHSV, (IMG ImgIn, IMG& ImgOut))
224CVB_DEF_CAPI_X (cvbres_t, ConvertHSVToRGB, (IMG ImgIn, IMG& ImgOut))
225CVB_DEF_CAPI_X (cvbres_t, ConvertRGBToGrayScaleStandard, (IMG ImgIn, IMG& ImgOut))
226CVB_DEF_CAPI_X (cvbres_t, ConvertRGBToGrayScale, (IMG ImgIn, double CoeffRed, double CoeffGreen, double CoeffBlue, IMG& ImgOut))
227CVB_DEF_CAPI_X (cvbres_t, ApplyColorTwistMatrix, (IMG ImgIn, double A11, double A12, double A13, double A14,
228 double A21, double A22, double A23, double A24,
229 double A31, double A32, double A33, double A34,
230 IMG& ImgOut))
231CVB_DEF_CAPI_X (cvbres_t, ApplyForwardGammaCorrection, (IMG ImgIn, IMG &ImgOut))
232CVB_DEF_CAPI_X (cvbres_t, ApplyInverseGammaCorrection, (IMG ImgIn, IMG &ImgOut))
233
234/* LUT functions */
235CVB_DEF_CAPI_X (cvbres_t, ApplyLUTGeneric, (IMG ImgIn, cvbdim_t Index, cvbval_t NumLevels,
236 double Levels[], double Values[], IMG& ImgOut))
237CVB_DEF_CAPI_X (cvbres_t, ApplyLUTLinear, (IMG ImgIn, cvbdim_t Index, cvbval_t NumLevels,
238 double Levels[], double Values[], IMG& ImgOut))
239CVB_DEF_CAPI_X (cvbres_t, ApplyLUTCubic, (IMG ImgIn, cvbdim_t Index, cvbval_t NumLevels,
240 double Levels[], double Values[], IMG& ImgOut))
241CVB_DEF_CAPI_X (cvbres_t, ApplyLUT8Bit, (IMG ImgIn, cvbdim_t Index, cvbval_t Values[256],
242 IMG& ImgOut))
243
244
245/* Thresholding Functions */
246CVB_DEF_CAPI_X (cvbres_t, CreateDynamicThresholdImageEx, (IMG ImgIn, TDynamicThresholdNorm Norm,
247 cvbdim_t WindowSize, double Threshold, IMG& ImgOut))
248CVB_DEF_CAPI_X (cvbres_t, CreateImageThresholdImage, (IMG ImgIn, IMG ImgThreshold,
249 TThresholdComparison Comparison, IMG& ImgOut))
250CVB_DEF_CAPI_X (cvbres_t, CreateConstantThresholdImage, (IMG ImgIn, double Values[],
251 TThresholdComparison Comparison, IMG& ImgOut))
252CVB_DEF_CAPI_X (cvbres_t, CreateTransparentThresholdImage, (IMG ImgIn, double Thresholds[], double Values[],
253 TThresholdComparison Comparison, IMG& ImgOut))
254
255/* Morphological Functions */
256CVB_DEF_CAPI_X (cvbres_t, ErodeImage, (IMG ImgIn, TMorphologyMask MaskType,
257 cvbdim_t MaskWidth, cvbdim_t MaskHeight,
258 cvbdim_t MaskOffsetX, cvbdim_t MaskOffsetY,
259 IMG CustomMask, IMG& ImgOut))
260CVB_DEF_CAPI_X (cvbres_t, DilateImage, (IMG ImgIn, TMorphologyMask MaskType,
261 cvbdim_t MaskWidth, cvbdim_t MaskHeight,
262 cvbdim_t MaskOffsetX, cvbdim_t MaskOffsetY,
263 IMG CustomMask, IMG& ImgOut))
264CVB_DEF_CAPI_X (cvbres_t, OpeningImage, (IMG ImgIn, TMorphologyMask MaskType,
265 cvbdim_t MaskWidth, cvbdim_t MaskHeight,
266 cvbdim_t MaskOffsetX, cvbdim_t MaskOffsetY,
267 IMG CustomMask, IMG& ImgOut))
268CVB_DEF_CAPI_X (cvbres_t, ClosingImage, (IMG ImgIn, TMorphologyMask MaskType,
269 cvbdim_t MaskWidth, cvbdim_t MaskHeight,
270 cvbdim_t MaskOffsetX, cvbdim_t MaskOffsetY,
271 IMG CustomMask, IMG& ImgOut))
272CVB_DEF_CAPI_X (cvbres_t, TophatImage, (IMG ImgIn, TMorphologyMask MaskType,
273 cvbdim_t MaskWidth, cvbdim_t MaskHeight,
274 cvbdim_t MaskOffsetX, cvbdim_t MaskOffsetY,
275 IMG CustomMask, IMG &ImgOut))
276CVB_DEF_CAPI_X (cvbres_t, BlackhatImage, (IMG ImgIn, TMorphologyMask MaskType,
277 cvbdim_t MaskWidth, cvbdim_t MaskHeight,
278 cvbdim_t MaskOffsetX, cvbdim_t MaskOffsetY,
279 IMG CustomMask, IMG &ImgOut))
280CVB_DEF_CAPI_X (cvbres_t, MorphologicalGradientImage, (IMG ImgIn, TMorphologyMask MaskType,
281 cvbdim_t MaskWidth, cvbdim_t MaskHeight,
282 cvbdim_t MaskOffsetX, cvbdim_t MaskOffsetY,
283 IMG CustomMask, IMG &ImgOut))
284
285/* Filter Functions */
286CVB_DEF_CAPI_X (cvbres_t, FilterBoxMean, (IMG ImgIn, cvbdim_t MaskWidth, cvbdim_t MaskHeight,
287 cvbdim_t MaskOffsetX, cvbdim_t MaskOffsetY, IMG& ImgOut))
288CVB_DEF_CAPI_X (cvbres_t, FilterBoxMin, (IMG ImgIn, cvbdim_t MaskWidth, cvbdim_t MaskHeight,
289 cvbdim_t MaskOffsetX, cvbdim_t MaskOffsetY, IMG& ImgOut))
290CVB_DEF_CAPI_X (cvbres_t, FilterBoxMax, (IMG ImgIn, cvbdim_t MaskWidth, cvbdim_t MaskHeight,
291 cvbdim_t MaskOffsetX, cvbdim_t MaskOffsetY, IMG& ImgOut))
292CVB_DEF_CAPI_X (cvbres_t, FilterBoxMedian, (IMG ImgIn, cvbdim_t MaskWidth, cvbdim_t MaskHeight,
293 cvbdim_t MaskOffsetX, cvbdim_t MaskOffsetY, IMG& ImgOut))
294CVB_DEF_CAPI_X (cvbres_t, FilterBoxMedianCross , (IMG ImgIn, TFilterMask MaskType, IMG& ImgOut))
295CVB_DEF_CAPI_X (cvbres_t, FilterMedianColor, (IMG ImgIn, TFilterMask MaskType, IMG& ImgOut))
296CVB_DEF_CAPI_X (cvbres_t, FilterUserLinear, (IMG ImgIn, cvbdim_t KernelWidth, cvbdim_t KernelHeight,
297 cvbdim_t KernelOffsetX, cvbdim_t KernelOffsetY,
298 double KernelValues[], IMG& ImgOut))
299CVB_DEF_CAPI_X (cvbres_t, FilterWiener, (IMG ImgIn, cvbdim_t MaskWidth, cvbdim_t MaskHeight,
300 cvbdim_t MaskOffsetX, cvbdim_t MaskOffsetY, double NoiseThreshold,
301 IMG& ImgOut))
302CVB_DEF_CAPI_X (cvbres_t, FilterPrewittHorizontal, (IMG ImgIn, IMG& ImgOut))
303CVB_DEF_CAPI_X (cvbres_t, FilterPrewittVertical, (IMG ImgIn, IMG& ImgOut))
304CVB_DEF_CAPI_X (cvbres_t, FilterScharrHorizontal, (IMG ImgIn, IMG& ImgOut))
305CVB_DEF_CAPI_X (cvbres_t, FilterScharrVertical, (IMG ImgIn, IMG& ImgOut))
306CVB_DEF_CAPI_X (cvbres_t, FilterSobelHorizontal, (IMG ImgIn, TFilterMask MaskSize, IMG& ImgOut))
307CVB_DEF_CAPI_X (cvbres_t, FilterSobelVertical, (IMG ImgIn, TFilterMask MaskSize, IMG& ImgOut))
308CVB_DEF_CAPI_X (cvbres_t, FilterSobelHorizontal2ndOrder, (IMG ImgIn, TFilterMask MaskSize, IMG& ImgOut))
309CVB_DEF_CAPI_X (cvbres_t, FilterSobelVertical2ndOrder, (IMG ImgIn, TFilterMask MaskSize, IMG& ImgOut))
310CVB_DEF_CAPI_X (cvbres_t, FilterSobelCross, (IMG ImgIn, TFilterMask MaskSize, IMG& ImgOut))
311CVB_DEF_CAPI_X (cvbres_t, FilterRobertsDown, (IMG ImgIn, IMG& ImgOut))
312CVB_DEF_CAPI_X (cvbres_t, FilterRobertsUp, (IMG ImgIn, IMG& ImgOut))
313CVB_DEF_CAPI_X (cvbres_t, FilterLaplace, (IMG ImgIn, TFilterMask MaskSize, IMG& ImgOut))
314CVB_DEF_CAPI_X (cvbres_t, FilterGauss, (IMG ImgIn, TFilterMask MaskSize, IMG& ImgOut))
315CVB_DEF_CAPI_X (cvbres_t, FilterHiPass, (IMG ImgIn, TFilterMask MaskSize, IMG& ImgOut))
316CVB_DEF_CAPI_X (cvbres_t, FilterLoPass, (IMG ImgIn, TFilterMask MaskSize, IMG& ImgOut))
317CVB_DEF_CAPI_X (cvbres_t, FilterSharpening, (IMG ImgIn, IMG& ImgOut))
318CVB_DEF_CAPI_X (cvbres_t, FilterCanny, (IMG ImgIn, cvbdim_t Index, TCannyEdgeFilter Filtering,
319 cvbval_t ThresholdLower, cvbval_t ThresholdUpper,
320 IMG& ImgOut))
321
322/* Statistical Functions */
323CVB_DEF_CAPI_X (IMGMOMENTS, CreateImageMoments, (TMomentsCalculation CalcMode))
324CVB_DEF_CAPI_X (cvbres_t, CalculateMoments, (IMG ImgIn, cvbdim_t Index,
325 cvbdim_t left, cvbdim_t top, cvbdim_t right, cvbdim_t bottom,
326 IMGMOMENTS Moments))
327CVB_DEF_CAPI_X (cvbres_t, GetSpatialImageMoment, (IMGMOMENTS Moments,
328 cvbval_t XOrder, cvbval_t YOrder,
329 cvbdim_t OffsetX, cvbdim_t OffsetY,
330 cvbbool_t Normalized, double& Moment))
331CVB_DEF_CAPI_X (cvbres_t, GetCentralImageMoment, (IMGMOMENTS Moments,
332 cvbval_t XOrder, cvbval_t YOrder,
333 cvbbool_t Normalized, double& Moment))
334CVB_DEF_CAPI_X (cvbres_t, GetHuImageMoments, (IMGMOMENTS Moments,
335 double& M1, double& M2, double& M3, double& M4,
336 double& M5, double& M6, double& M7))
337CVB_DEF_CAPI_X (cvbres_t, ImageNormLInf, (IMG ImgIn, cvbdim_t Index,
338 cvbdim_t left, cvbdim_t top, cvbdim_t right, cvbdim_t bottom,
339 cvbbool_t Normalize, double& Value))
340CVB_DEF_CAPI_X (cvbres_t, ImageNormL1, (IMG ImgIn, cvbdim_t Index,
341 cvbdim_t left, cvbdim_t top, cvbdim_t right, cvbdim_t bottom,
342 cvbbool_t Normalize, double& Value))
343CVB_DEF_CAPI_X (cvbres_t, ImageNormL2, (IMG ImgIn, cvbdim_t Index,
344 cvbdim_t left, cvbdim_t top, cvbdim_t right, cvbdim_t bottom,
345 cvbbool_t Normalize, double& Value))
346CVB_DEF_CAPI_X (cvbres_t, WangImageQuality, (IMG ImgIn1, cvbdim_t Index1,
347 IMG ImgIn2, cvbdim_t Index2,
348 double& Value))
349
350
351/* Correlation functions */
352CVB_DEF_CAPI_X (cvbres_t, CalculateSumOfSquareDistances, (IMG ImgIn, cvbdim_t IndexIn,
353 IMG Template, cvbdim_t IndexTemplate,
354 cvbdim_t left, cvbdim_t top,
355 cvbdim_t right, cvbdim_t bottom,
356 IMG& Accumulator))
357CVB_DEF_CAPI_X (cvbres_t, CalculateCrossCorrelations, (IMG ImgIn, cvbdim_t IndexIn,
358 IMG Template, cvbdim_t IndexTemplate,
359 cvbdim_t left, cvbdim_t top,
360 cvbdim_t right, cvbdim_t bottom,
361 IMG& Accumulator))
362CVB_DEF_CAPI_X (cvbres_t, CalculateCorrelationCoefficients, (IMG ImgIn, cvbdim_t IndexIn,
363 IMG Template, cvbdim_t IndexTemplate,
364 cvbdim_t left, cvbdim_t top,
365 cvbdim_t right, cvbdim_t bottom,
366 IMG& Accumulator))
367CVB_DEF_CAPI_X (cvbres_t, FindCorrelationMatches, (IMG img, cvbdim_t planeImg, IMG tpl, cvbdim_t planeTpl,
368 cvbdim_t left, cvbdim_t top, cvbdim_t right, cvbdim_t bottom, double threshold, cvbdim_t locality,
369 TSubPixelMode subPixMode, cvbdim_t subPixRadius,
370 PIXELLIST& results))
371
372/* Geometric image transformations */
373CVB_DEF_CAPI_X (cvbres_t, RotateImage, (IMG ImgIn, double Angle, TInterpolationMode Interpolation, IMG& ImgOut))
374CVB_DEF_CAPI_X (cvbres_t, ResizeImage, (IMG ImgIn, cvbdim_t TargetWidth, cvbdim_t TargetHeight,
375 TInterpolationMode Interpolation, IMG& ImgOut))
376CVB_DEF_CAPI_X (cvbres_t, MirrorImage, (IMG ImgIn, cvbbool_t MirrorX, cvbbool_t MirrorY, IMG& ImgOut))
377CVB_DEF_CAPI_X (cvbres_t, ShearImage, (IMG ImgIn, double ShearX, double ShearY, TInterpolationMode Interpolation, IMG& ImgOut))
378CVB_DEF_CAPI_X (cvbres_t, PerspectiveTransformImage, (IMG ImgIn,
379 cvbdim_t DstWidth, cvbdim_t DstHeight, cvbdim_t DstXOffset, cvbdim_t DstYOffset,
380 double C00, double C01, double C02,
381 double C10, double C11, double C12,
382 double C20, double C21, double C22,
383 TInterpolationMode Interpolation, IMG& ImgOut))
384CVB_DEF_CAPI_X (cvbres_t, CalcPerspectiveTransformation, (cvbdim_t dstLeft, cvbdim_t dstTop, cvbdim_t dstRight, cvbdim_t dstBottom,
385 double srcX0, double srcY0, double srcX1, double srcY1,
386 double srcX2, double srcY2, double srcX3, double srcY3,
387 double& C00, double& C01, double& C02,
388 double& C10, double& C11, double& C12,
389 double& C20, double& C21, double& C22))
390CVB_DEF_CAPI_X (cvbres_t, CalcPerspectiveTransformationEx, (double dstLeft, double dstTop, double dstRight, double dstBottom,
391 double srcX0, double srcY0, double srcX1, double srcY1,
392 double srcX2, double srcY2, double srcX3, double srcY3,
393 double& C00, double& C01, double& C02,
394 double& C10, double& C11, double& C12,
395 double& C20, double& C21, double& C22))
396CVB_DEF_CAPI_X (cvbres_t, MatrixTransformImage, (IMG ImgIn, TMatrix Matrix2D, TInterpolationMode Interpolation, IMG& ImgOut))
397CVB_DEF_CAPI_X (cvbres_t, AreaSubImage, (IMG ImgIn, TArea Area, TInterpolationMode Interpolation, IMG& ImgOut))
398
399/* Other image analysis and processing functions */
400CVB_DEF_CAPI_X (cvbres_t, LocalEigenValuesAndVectors, (IMG ImgIn, cvbdim_t Index,
401 TFilterMask DerivatorSize, TFilterMask BlurSize,
402 IMG& ImgLambda1, IMG& ImgLambda2,
403 IMG& ImgEV1X, IMG& ImgEV1Y,
404 IMG& ImgEV2X, IMG& ImgEV2Y))
405CVB_DEF_CAPI_X (cvbres_t, LocalMinEigenValues, (IMG ImgIn, cvbdim_t Index,
406 TFilterMask DerivatorSize, TFilterMask BlurSize,
407 IMG& ImgLambdaMin))
408CVB_DEF_CAPI_X (cvbres_t, DistanceTransformation, (IMG ImgIn, cvbdim_t Index,
409 TFilterMask MaskSize, TDistanceNorm Norm, IMG& ImgOut))
410CVB_DEF_CAPI_X (cvbres_t, EuclideanDistanceTransform, (IMG ImgIn, cvbdim_t Index, IMG &ImgOut))
411CVB_DEF_CAPI_X (cvbres_t, FastMarchingDistanceTransform, (IMG ImgIn, cvbdim_t Index, float radius, IMG &ImgOut))
412CVB_DEF_CAPI_X (cvbres_t, PyramidDownSample, (IMG ImgIn, IMG& ImgOut))
413CVB_DEF_CAPI_X (cvbres_t, PyramidUpSample, (IMG ImgIn, IMG& ImgOut))
414CVB_DEF_CAPI_X (cvbres_t, ForwardWaveletTransform, (IMG ImgIn, TWaveletFilter FilterType,
415 cvbdim_t AnchorLow, cvbdim_t AnchorHigh,
416 double LowpassFilter[], double HighpassFilter[],
417 cvbdim_t LengthFilter,
418 IMG &ImgApproximation, IMG &ImgDetailX,
419 IMG &ImgDetailY, IMG &ImgDetailXY))
420CVB_DEF_CAPI_X (cvbres_t, InverseWaveletTransform, (TWaveletFilter FilterType,
421 cvbdim_t AnchorLow, cvbdim_t AnchorHigh,
422 double LowpassFilter[], double HighpassFilter[], cvbdim_t LengthFilter,
423 IMG ImgApproximation, IMG ImgDetailX, IMG ImgDetailY,
424 IMG ImgDetailXY, IMG &ImgOut))
425
426/* Foundation-Package Blob Tool */
427IMPORT (FBLOB) FBlobCreate (IMG Image, cvbdim_t Index);
428
429CVB_DEF_CAPI (cvbres_t, FBlobGetCenterEx, (FBLOB Handle, cvbval_t BlobNum, double& CenterX, double& CenterY))
430CVB_DEF_CAPI (cvbres_t, FBlobGetSize, (FBLOB Handle, cvbval_t BlobNum, cvbval_t& Size))
431CVB_DEF_CAPI (cvbres_t, FBlobGetBoundingBoxEx, (FBLOB Handle, cvbval_t BlobNum, cvbdim_t& x, cvbdim_t& y, cvbdim_t& dx, cvbdim_t& dy))
432CVB_DEF_CAPI (cvbres_t, FBlobGetMoments, (FBLOB Handle, cvbval_t BlobNum, double& Min, double& Max, double& Ratio, double& Angle))
433CVB_DEF_CAPI (cvbres_t, FBlobGetMinMomentPointsEx, (FBLOB Handle, cvbval_t BlobNum, cvbdim_t& x0, cvbdim_t& y0, cvbdim_t& x1, cvbdim_t& y1))
434CVB_DEF_CAPI (cvbres_t, FBlobSetArea, (FBLOB Handle, cvbdim_t Index, cvbdim_t left, cvbdim_t top, cvbdim_t right, cvbdim_t bottom))
435CVB_DEF_CAPI_X (cvbres_t, FBlobSetSkipBinarization, (FBLOB Handle, cvbbool_t SkipIt))
436CVB_DEF_CAPI_X (cvbres_t, FBlobSetObjectTouchBorder, (FBLOB Handle, cvbval_t Mask))
437CVB_DEF_CAPI_X (cvbres_t, FBlobSetLimitArea, (FBLOB Handle, cvbval_t AreaMin, cvbval_t AreaMax))
438CVB_DEF_CAPI_X (cvbres_t, FBlobSetLimitWidth, (FBLOB Handle, cvbval_t Min, cvbval_t Max))
439CVB_DEF_CAPI_X (cvbres_t, FBlobSetLimitHeight, (FBLOB Handle, cvbval_t Min, cvbval_t Max))
440CVB_DEF_CAPI_X (cvbres_t, FBlobSetObjectFeatureRange, (FBLOB Handle, cvbval_t FeatureMin, cvbval_t FeatureMax))
441CVB_DEF_CAPI_X (cvbres_t, FBlobGetNumBlobs, (FBLOB Handle, cvbval_t& Count))
442CVB_DEF_CAPI_X (cvbres_t, FBlobExec, (FBLOB Handle))
443CVB_DEF_CAPI_X (cvbres_t, FBlobBinariseImage, (IMG Src, TDRect *Rect, cvbdim_t Index, cvbval_t Low, cvbval_t High, IMG Dst))
444
445/* Foundation-Package Math Utilities */
446CVB_DEF_CAPI_X (LINE2D, CreateLine2DByRegression, (PIXELLIST RegressionList))
447CVB_DEF_CAPI_X (cvbres_t, GetLine2DOriginDistance, (LINE2D Line, double& Distance))
448CVB_DEF_CAPI_X (cvbres_t, GetLine2DNormalVector, (LINE2D Line, VECTOR2D& NormalVector))
449CVB_DEF_CAPI_X (cvbres_t, GetVector2DCartesian, (VECTOR2D Input, double& X, double& Y))
450
451/* Regression Functions */
452CVB_DEF_CAPI_X (cvbres_t, CalculateCircleRegression, (PIXELLIST pl, double& centerX, double& centerY, double& radius))
453CVB_DEF_CAPI_X (cvbres_t, CalculateEllipseRegression, (PIXELLIST pl, double& centerX, double& centerY, double& radiusA, double& radiusB, double& rotation))
454
455
456struct CVFAlignmentConfiguration
457{
458 size_t MaxIterations;
459 double Tolerance;
460 double MinImprovement;
461 double Correspondence;
462 bool Prealign;
463};
464
465struct CVFAlignment2DResult
466{
467 double Rotation[2][2];
468 double Translation[2];
469 double MeanDistance;
470 size_t NumIterations;
471};
472
473struct CVFLineScanCalibrationConfiguration
474{
475 unsigned int MaxIterations;
476 unsigned int PolyDegree;
477 double Tolerance;
478 CVFScanDirection ScanDirection;
479 cvbbool_t UsePredefinedPixelSize;
480 double PixelSize;
481};
482
483
484/* Curve Functions */
485CVB_DEF_CAPI(cvbres_t, CVFResampleCurve2D, (const CVIPointD *Curve, cvbdim_t CurveLength, cvbdim_t ResampledCurveLength, CVIPointD *ResampledCurve))
486CVB_DEF_CAPI(cvbres_t, CVFAlignCurves2D, (const CVIPointD *Curve, cvbdim_t CurveLength, const CVIPointD *CurveToBeAligned, cvbdim_t CurveToBeAlignedLength, const CVFAlignmentConfiguration &Config, CVFAlignment2DResult &Result))
487CVB_DEF_CAPI(cvbres_t, CVFCalculateSignedDifferences, (const CVIPointD *Curve, cvbdim_t CurveLength, const CVIPointD *Points, cvbdim_t PointsLength, double *SignedDifferences))
488CVB_DEF_CAPI(cvbres_t, CVFIntersectCurve2DWithLine, (const CVIPointD *Curve, cvbdim_t CurveLength, CVIPointD Normal, double DistanceToOrigin, cvbdim_t IntersectionPointsLength, CVIPointD *IntersectionPoints, cvbdim_t &IntersectionPointsCalculatedLength))
489CVB_DEF_CAPI(cvbres_t, CVFCalculateEnclosedArea, (const CVIPointD *Curve, cvbdim_t CurveLength, double *EnclosedArea))
490CVB_DEF_CAPI(cvbres_t, CVFCalculateQuadraticDifferencesToClosestPoint, (const CVIPointD *Curve, cvbdim_t CurveLength, const CVIPointD *Points, cvbdim_t PointsLength, double *Differences))
491CVB_DEF_CAPI(cvbres_t, CVFMerge2Curves, (const CVIPointD *CurveLHS, cvbdim_t CurveLengthLHS, const CVIPointD *CurveRHS, cvbdim_t CurveLengthRHS, cvbbool_t sort, cvbdim_t CurveOutAllocatedLength, CVIPointD *CurveOut, cvbdim_t &CurveOutLength))
492
493
494/* Calibration Line-scan Functions */
495CVB_DEF_CAPI(cvbres_t, CVFGet2PointsForCalibrationOfMovement, (IMG Image, cvbdim_t Index, const TArea &Aoi, TCalibrationPatternContrast Contrast, cvbval_t MinContrast, double MinPointSize, double MaxPointSize, CVFScanDirection ScanDirection, CVIPointD &FirstPoint, CVIPointD &SecondPoint))
496CVB_DEF_CAPI(cvbres_t, CVFDetectEdgesOfStripeTarget, (IMG ImageStripes, cvbdim_t Left, cvbdim_t Top, cvbdim_t Right, cvbdim_t Bottom, size_t NumStripes, CVFScanDirection ScanDirection, double Threshold, int *ScanLineIndices, double *EdgeIndices, size_t &NumScanLines, size_t &NumEdgesPerScanLine))
497CVB_DEF_CAPI(cvbres_t, CVFCreateLineScanCalibration, (CVIPointD CalibrationPoint1, CVIPointD CalibrationPoint2, double ReferenceDistanceCalibrationPoints, int *ScanLineIndices, double *EdgeIndices, size_t NumScanLines, size_t NumEdgesPerScanLine, double ReferenceWidthStripes, const CVFLineScanCalibrationConfiguration &Configuration, NLTRANSFORMATION &Transformation, double &PixelSize, double &MeanError, double &StdDev))
498
499
500
501inline cvbbool_t _ppLoadNLTransformFileTyped(const char * FileName, NLTRANSFORMATION& Transformation)
502{
503 return CExports::_ppLoadNLTransformFile(FileName, Transformation);
504}
505
506inline cvbbool_t _ppLoadNLTransformFileTyped(const wchar_t * FileName, NLTRANSFORMATION& Transformation)
507{
508 return CExports::_ppLoadNLTransformFileW(FileName, Transformation);
509}
510
511inline cvbbool_t _ppWriteNLTransformFileTyped(NLTRANSFORMATION Transformation, const char * FileName)
512{
513 return CExports::_ppWriteNLTransformFile(Transformation, FileName);
514}
515
516inline cvbbool_t _ppWriteNLTransformFileTyped(NLTRANSFORMATION Transformation, const wchar_t * FileName)
517{
518 return CExports::_ppWriteNLTransformFileW(Transformation, FileName);
519}
520
521} /* namespace CExports */
522
523CVB_END_INLINE_NS
524
525} /* namespace Cvb */
526
527#endif
cvbres_t CVFGet2PointsForCalibrationOfMovement(IMG Image, cvbdim_t Index, const TArea &Aoi, TCalibrationPatternContrast Contrast, cvbval_t MinContrast, double MinPointSize, double MaxPointSize, CVFScanDirection ScanDirection, CVIPointD &FirstPoint, CVIPointD &SecondPoint)
CVFScanDirection
cvbres_t CVFCreateLineScanCalibration(CVIPointD CalibrationPoint1, CVIPointD CalibrationPoint2, double ReferenceDistanceCalibrationPoints, int *ScanLineIndices, double *EdgeIndices, size_t NumScanLines, size_t NumEdgesPerScanLine, double ReferenceWidthStripes, const CVFLineScanCalibrationConfiguration &Configuration, NLTRANSFORMATION &Transformation, double &PixelSize, double &MeanError, double &StdDev)
cvbres_t CVFDetectEdgesOfStripeTarget(IMG ImageStripes, cvbdim_t Left, cvbdim_t Top, cvbdim_t Right, cvbdim_t Bottom, size_t NumStripes, CVFScanDirection ScanDirection, double Threshold, int *ScanLineIndices, double *EdgeIndices, size_t &NumScanLines, size_t &NumEdgesPerScanLine)
cvbres_t CVFCalculateSignedDifferences(const CVIPointD *Curve, cvbdim_t CurveLength, const CVIPointD *Points, cvbdim_t PointsLength, double *SignedDifferences)
cvbres_t CVFResampleCurve2D(const CVIPointD *Curve, cvbdim_t CurveLength, cvbdim_t ResampledCurveLength, CVIPointD *ResampledCurve)
cvbres_t CVFCalculateEnclosedArea(const CVIPointD *Curve, cvbdim_t CurveLength, double *EnclosedArea)
cvbres_t CVFAlignCurves2D(const CVIPointD *Curve, cvbdim_t CurveLength, const CVIPointD *CurveToBeAligned, cvbdim_t CurveToBeAlignedLength, const CVFAlignmentConfiguration &Config, CVFAlignment2DResult &Result)
cvbres_t CVFCalculateQuadraticDifferencesToClosestPoint(const CVIPointD *Curve, cvbdim_t CurveLength, const CVIPointD *Points, cvbdim_t PointsLength, double *Differences)
cvbres_t CVFIntersectCurve2DWithLine(const CVIPointD *Curve, cvbdim_t CurveLength, CVIPointD Normal, double DistanceToOrigin, cvbdim_t IntersectionPointsLength, CVIPointD *IntersectionPoints, cvbdim_t &IntersectionPointsCalculatedLength)
cvbres_t CVFMerge2Curves(const CVIPointD *CurveLHS, cvbdim_t CurveLengthLHS, const CVIPointD *CurveRHS, cvbdim_t CurveLengthRHS, cvbbool_t sort, cvbdim_t CurveOutAllocatedLength, CVIPointD *CurveOut, cvbdim_t &CurveOutLength)
cvbres_t AndImages(IMG ImgIn1, IMG ImgIn2, IMG &ImgOut)
cvbres_t XorConstant(IMG ImgIn, long Values[], IMG &ImgOut)
cvbres_t OrImages(IMG ImgIn1, IMG ImgIn2, IMG &ImgOut)
cvbres_t DivideConstant(IMG ImgIn, double Values[], IMG &ImgOut)
cvbres_t OrConstant(IMG ImgIn, long Values[], IMG &ImgOut)
cvbres_t DownShift(IMG ImgIn, long Values[], IMG &ImgOut)
cvbres_t MultiplyImages(IMG ImgIn1, IMG ImgIn2, cvbbool_t ScaleResults, IMG &ImgOut)
cvbres_t SquareImage(IMG ImgIn, cvbbool_t ScaleResults, IMG &ImgOut)
cvbres_t SubtractConstant(IMG ImgIn, double Values[], IMG &ImgOut)
cvbres_t AddImages(IMG ImgIn1, IMG ImgIn2, cvbbool_t ScaleResults, IMG &ImgOut)
cvbres_t UpShift(IMG ImgIn, long Values[], IMG &ImgOut)
cvbres_t MultiplyConstant(IMG ImgIn, double Values[], cvbbool_t ScaleResults, IMG &ImgOut)
cvbres_t SubtractConstantAbsolute(IMG ImgIn, double Values[], IMG &ImgOut)
cvbres_t DivideImages(IMG ImgIn1, IMG ImgIn2, long UpShift, IMG &ImgOut)
cvbres_t XorImages(IMG ImgIn1, IMG ImgIn2, IMG &ImgOut)
cvbres_t AddConstant(IMG ImgIn, double Values[], cvbbool_t ScaleResults, IMG &ImgOut)
cvbres_t NegateImage(IMG ImgIn, IMG &ImgOut)
cvbres_t SquareRootImage(IMG ImgIn, cvbbool_t ScaleResults, IMG &ImgOut)
cvbres_t AndConstant(IMG ImgIn, long Values[], IMG &ImgOut)
cvbres_t SubtractImages(IMG ImgIn1, IMG ImgIn2, IMG &ImgOut)
cvbres_t AbsoluteImage(IMG ImgIn, IMG &ImgOut)
cvbres_t SubtractImagesAbsolute(IMG ImgIn1, IMG ImgIn2, IMG &ImgOut)
cvbres_t FBlobSetLimitWidth(FBLOB Handle, long Min, long Max)
cvbres_t FBlobSetArea(FBLOB Handle, long Index, long left, long top, long right, long bottom)
cvbres_t FBlobGetCenterEx(FBLOB Handle, long BlobNum, double &CenterX, double &CenterY)
FBLOB FBlobCreate(IMG Image, long Index)
cvbres_t FBlobSetLimitArea(FBLOB Handle, long AreaMin, long AreaMax)
cvbres_t FBlobBinariseImage(IMG Src, TDRect *Rect, long Index, long Low, long High, IMG Dst)
cvbres_t FBlobSetLimitHeight(FBLOB Handle, long Min, long Max)
cvbres_t FBlobGetBoundingBoxEx(FBLOB Handle, long BlobNum, long &x, long &y, long &dx, long &dy)
cvbres_t FBlobSetObjectTouchBorder(FBLOB Handle, long Mask)
cvbres_t FBlobGetSize(FBLOB Handle, long BlobNum, long &Size)
cvbres_t FBlobGetMoments(FBLOB Handle, long BlobNum, double &Min, double &Max, double &Ratio, double &Angle)
cvbres_t FBlobGetMinMomentPointsEx(FBLOB Handle, long BlobNum, long &x0, long &y0, long &x1, long &y1)
cvbres_t FBlobSetSkipBinarization(FBLOB Handle, cvbbool_t Skip)
cvbres_t FBlobSetObjectFeatureRange(FBLOB Handle, long FeatureMin, long FeatureMax)
cvbres_t FBlobGetNumBlobs(FBLOB Handle, long &Count)
cvbres_t FBlobExec(FBLOB Handle)
cvbres_t ConvertRGBToLab(IMG ImgIn, cvbbool_t UseLab16, IMG &ImgOut)
cvbres_t ConvertHLSToRGB(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertYUVToRGB(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertRGBToLUV(IMG ImgIn, IMG &ImgOut)
cvbres_t ApplyForwardGammaCorrection(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertRGBToHSV(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertLabToRGB(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertRGBToYUV(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertYCbCrToRGB(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertRGBToGrayScale(IMG ImgIn, double CoeffRed, double CoeffGreen, double CoeffBlue, IMG &ImgOut)
cvbres_t ApplyInverseGammaCorrection(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertRGBToGrayScaleStandard(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertXYZToRGB(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertRGBToHLS(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertRGBToYCbCr(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertRGBToYCC(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertRGBToXYZ(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertLUVToRGB(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertYCCToRGB(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertHSVToRGB(IMG ImgIn, IMG &ImgOut)
cvbres_t CalculateSumOfSquareDistances(IMG ImgIn, long IndexIn, IMG Template, long IndexTemplate, long left, long top, long right, long bottom, IMG &Accumulator)
cvbres_t CalculateCorrelationCoefficients(IMG ImgIn, long IndexIn, IMG Template, long IndexTemplate, long left, long top, long right, long bottom, IMG &Accumulator)
cvbres_t ApplyLUTGeneric(IMG ImgIn, long Index, long NumLevels, double Levels[], double Values[], IMG &ImgOut)
cvbres_t ApplyLUTCubic(IMG ImgIn, long Index, long NumLevels, double Levels[], double Values[], IMG &ImgOut)
cvbres_t CalculateEllipseRegression(PIXELLIST pl, double &centerX, double &centerY, double &radiusA, double &radiusB, double &rotation)
cvbres_t CalculateCircleRegression(PIXELLIST pl, double &centerX, double &centerY, double &radius)
LINE2D CreateLine2DByRegression(PIXELLIST RegressionList)
cvbres_t GetLine2DNormalVector(LINE2D Line, VECTOR2D &Vector)
cvbres_t GetVector2DCartesian(VECTOR2D Input, double &X, double &Y)
cvbres_t GetLine2DOriginDistance(LINE2D Line, double &Distance)
cvbres_t CreateInverseNLTransformedImage(IMG Image, NLTRANSFORMATION Transformation, cvbdim_t TargetWidth, cvbdim_t TargetHeight, cvbdim_t XTargetOffset, cvbdim_t YTargetOffset, IMG &Out)
cvbres_t NLTransformNumCoefficients(NLTRANSFORMATION Transformation)
cvbres_t ApplyInverseNLTransform(NLTRANSFORMATION Transformation, double &X, double &Y)
cvbres_t ApplyNLTransformPixelList(NLTRANSFORMATION Transformation, PIXELLIST List)
cvbbool_t LoadNLTransformFileW(const wchar_t *FileName, NLTRANSFORMATION &Transformation)
cvbres_t CreateCalibrationPatternLetter(cvbval_t numColumns, cvbval_t numRows, double borderH, double borderV, cvbval_t dpi, cvbbool_t landscape, TCalibrationPatternStyle style, TCalibrationPatternContrast contrast, IMG &imgOut)
cvbres_t CreateNLTransformedImage(IMG Image, NLTRANSFORMATION Transformation, cvbdim_t TargetWidth, cvbdim_t TargetHeight, cvbdim_t XTargetOffset, cvbdim_t YTargetOffset, IMG &Out)
BOOL IsNLTransform(NLTRANSFORMATION Transformation)
cvbres_t ApplyNLTransform(NLTRANSFORMATION Transformation, double &X, double &Y)
cvbres_t NLTransformOrder(NLTRANSFORMATION Transformation)
cvbbool_t LoadNLTransformFile(const char *FileName, NLTRANSFORMATION &Transformation)
cvbres_t ApplyInverseNLTransformPixelList(NLTRANSFORMATION Transformation, PIXELLIST List)
cvbbool_t WriteNLTransformFileW(NLTRANSFORMATION Transformation, const wchar_t *FileName)
cvbres_t CreateCalibrationPattern(cvbdim_t width, cvbdim_t height, cvbval_t numColumns, cvbval_t numRows, TCalibrationPatternStyle style, TCalibrationPatternContrast contrast, IMG &imgOut)
cvbbool_t WriteNLTransformFile(NLTRANSFORMATION Transformation, const char *FileName)
cvbres_t CalculateMoments(IMG ImgIn, long Index, long left, long top, long right, long bottom, IMGMOMENTS Moments)
cvbres_t ImageNormL2(IMG ImgIn, cvbdim_t Index, cvbdim_t left, cvbdim_t top, cvbdim_t right, cvbdim_t bottom, cvbbool_t Normalize, double &Value)
IMGMOMENTS CreateImageMoments(TMomentsCalculation CalcMode)
cvbres_t ImageNormLInf(IMG ImgIn, cvbdim_t Index, cvbdim_t left, cvbdim_t top, cvbdim_t right, cvbdim_t bottom, cvbbool_t Normalize, double &Value)
cvbres_t GetCentralImageMoment(IMGMOMENTS Moments, long XOrder, long YOrder, cvbbool_t Normalized, double &Moment)
cvbres_t MirrorImage(IMG ImgIn, cvbbool_t MirrorX, cvbbool_t MirrorY, IMG &ImgOut)
cvbres_t AreaSubImage(IMG ImgIn, TArea Area, TInterpolationMode Interpolation, IMG &ImgOut)
cvbres_t RotateImage(IMG ImgIn, double Angle, TInterpolationMode Interpolation, IMG &ImgOut)
cvbres_t ResizeImage(IMG ImgIn, long TargetWidth, long TargetHeight, TInterpolationMode Interpolation, IMG &ImgOut)
cvbres_t ShearImage(IMG ImgIn, double ShearX, double ShearY, TInterpolationMode Interpolation, IMG &ImgOut)
cvbres_t CalcPerspectiveTransformation(long dstLeft, long dstTop, long dstRight, long dstBottom, double srcX0, double srcY0, double srcX1, double srcY1, double srcX2, double srcY2, double srcX3, double srcY3, double &C00, double &C01, double &C02, double &C10, double &C11, double &C12, double &C20, double &C21, double &C22)
cvbres_t MatrixTransformImage(IMG ImgIn, TMatrix Matrix, TInterpolationMode Interpolation, IMG &ImgOut)
cvbres_t FilterPrewittHorizontal(IMG ImgIn, IMG &ImgOut)
cvbres_t FilterBoxMedian(IMG ImgIn, long MaskWidth, long MaskHeight, long MaskOffsetX, long MaskOffsetY, IMG &ImgOut)
cvbres_t FilterSobelHorizontal2ndOrder(IMG ImgIn, TFilterMask MaskSize, IMG &ImgOut)
cvbres_t FilterHiPass(IMG ImgIn, TFilterMask MaskSize, IMG &ImgOut)
cvbres_t FilterRobertsDown(IMG ImgIn, IMG &ImgOut)
cvbres_t FilterBoxMedianCross(IMG ImgIn, TFilterMask MaskType, IMG &ImgOut)
cvbres_t FilterPrewittVertical(IMG ImgIn, IMG &ImgOut)
cvbres_t FilterGauss(IMG ImgIn, TFilterMask MaskSize, IMG &ImgOut)
cvbres_t FilterSobelHorizontal(IMG ImgIn, TFilterMask MaskSize, IMG &ImgOut)
cvbres_t FilterSobelVertical2ndOrder(IMG ImgIn, TFilterMask MaskSize, IMG &ImgOut)
cvbres_t FilterBoxMin(IMG ImgIn, long MaskWidth, long MaskHeight, long MaskOffsetX, long MaskOffsetY, IMG &ImgOut)
cvbres_t FilterSharpening(IMG ImgIn, IMG &ImgOut)
cvbres_t FilterWiener(IMG ImgIn, long MaskWidth, long MaskHeight, long MaskOffsetX, long MaskOffsetY, double NoiseThreshold, IMG &ImgOut)
cvbres_t FilterScharrHorizontal(IMG ImgIn, IMG &ImgOut)
cvbres_t FilterScharrVertical(IMG ImgIn, IMG &ImgOut)
cvbres_t FilterMedianColor(IMG ImgIn, TFilterMask MaskType, IMG &ImgOut)
cvbres_t FilterLoPass(IMG ImgIn, TFilterMask MaskSize, IMG &ImgOut)
cvbres_t FilterRobertsUp(IMG ImgIn, IMG &ImgOut)
cvbres_t FilterSobelCross(IMG ImgIn, TFilterMask MaskSize, IMG &ImgOut)
cvbres_t FilterSobelVertical(IMG ImgIn, TFilterMask MaskSize, IMG &ImgOut)
cvbres_t ErodeImage(IMG ImgIn, TMorphologyMask MaskType, long MaskWidth, long MaskHeight, long MaskOffsetX, long MaskOffsetY, IMG CustomMask, IMG &ImgOut)
cvbres_t OpeningImage(IMG ImgIn, TMorphologyMask MaskType, long MaskWidth, long MaskHeight, long MaskOffsetX, long MaskOffsetY, IMG CustomMask, IMG &ImgOut)
cvbres_t MorphologicalGradientImage(IMG ImgIn, TMorphologyMask MaskType, long MaskWidth, long MaskHeight, long MaskOffsetX, long MaskOffsetY, IMG CustomMask, IMG &ImgOut)
cvbres_t TophatImage(IMG ImgIn, TMorphologyMask MaskType, long MaskWidth, long MaskHeight, long MaskOffsetX, long MaskOffsetY, IMG CustomMask, IMG &ImgOut)
cvbres_t ScaleTo16BPPUnsigned(IMG ImgIn, IMG &ImgOut)
cvbres_t ScaleTo16BPPSigned(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertTo32BPPSigned(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertTo8BPPUnsigned(IMG ImgIn, IMG &ImgOut)
cvbres_t ScaleTo8BPPUnsigned(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertTo16BPPSigned(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertTo16BPPUnsigned(IMG ImgIn, IMG &ImgOut)
cvbres_t ConvertTo32BPPFloat(IMG ImgIn, IMG &ImgOut)
cvbres_t ScaleTo32BPPFloat(IMG ImgIn, IMG &ImgOut, double MinVal, double MaxVal)
cvbres_t ScaleTo32BPPSigned(IMG ImgIn, IMG &ImgOut)
cvbres_t PyramidDownSample(IMG ImgIn, IMG &ImgOut)
cvbres_t PyramidUpSample(IMG ImgIn, IMG &ImgOut)
cvbres_t InitializeImageRect(IMG ImgIn, long left, long top, long right, long bottom, double *ValuesIn)
cvbres_t CreateGreyRamp(long Width, long Height, long Dimension, long BitsPerPixel, cvbbool_t Signed, cvbbool_t Float, double Offset, double Slope, cvbbool_t AxisHorizontal, cvbbool_t AxisVertical, IMG &ImgOut)
cvbres_t LocalEigenValuesAndVectors(IMG ImgIn, long Index, TFilterMask DerivatorSize, TFilterMask BlurSize, IMG &ImgLambda1, IMG &ImgLambda2, IMG &ImgEV1X, IMG &ImgEV1Y, IMG &ImgEV2X, IMG &ImgEV2Y)
cvbres_t EuclideanDistanceTransform(IMG ImgIn, cvbdim_t Index, IMG &ImgOut)
cvbres_t AddGaussNoise(IMG ImgIn, double Mean, double StdDev, long Seed, IMG &ImgOut)
cvbres_t DistanceTransformation(IMG ImgIn, long Index, TFilterMask MaskSize, TDistanceNorm Norm, IMG &ImgOut)
cvbres_t SwapRGBChannels(IMG ImgIn, long Order[3], IMG &ImgOut)
cvbres_t FastMarchingDistanceTransform(IMG ImgIn, cvbdim_t Index, float Radius, IMG &ImgOut)
cvbres_t CreateDynamicThresholdImageEx(IMG ImgIn, TDynamicThresholdNorm Norm, long WindowSize, double Threshold, IMG &ImgOut)
cvbres_t CreateConstantThresholdImage(IMG ImgIn, double Values[], TThresholdComparison Comparison, IMG &ImgOut)
cvbres_t InverseWaveletTransform(TWaveletFilter FilterType, cvbdim_t AnchorLow, cvbdim_t AnchorHigh, double LowpassFilter[], double HighpassFilter[], cvbdim_t LengthFilter, IMG ImgApproximation, IMG ImgDetailX, IMG ImgDetailY, IMG ImgDetailXY, IMG &ImgOut)
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
Angle Max(Angle a, Angle b) noexcept
Returns the bigger of two angles.
Definition angle.hpp:495
Angle Min(Angle a, Angle b) noexcept
Returns the smaller of two angles.
Definition angle.hpp:512
@ X
Sensor pixel values are mirrored in X (or denoted by u), so that the columns of the range map will be...
Definition core_3d.hpp:272
@ Y
Sensor pixel values are mirrored in Y (or denoted by v), so that the range map pixel values will be f...
Definition core_3d.hpp:278