CVB++ 15.0
c_sample_database.h
1#pragma once
2
3#if defined __GNUC__ && !defined CVB_SHOW_WARNINGS
4# pragma GCC system_header
5#endif // __GNUC__
6
7#include <cstddef>
8#include <cstdint>
9
10#include "../namespace.hpp"
11
12#include "c_img.h"
13
14
15
16
17namespace Cvb
18{
19
20CVB_BEGIN_INLINE_NS
21
22namespace CExports
23{
24
25
26struct CV_SYSTEMTIME
27{
28 uint16_t wYear;
29 uint16_t wMonth;
30 uint16_t wDayOfWeek;
31 uint16_t wDay;
32 uint16_t wHour;
33 uint16_t wMinute;
34 uint16_t wSecond;
35 uint16_t wMilliseconds;
36};
37
38
39/* DLL object types */
40typedef void* TSIL;
41typedef void* TSILDATATYPE;
42typedef void* TSILDATA;
43typedef void* TSILLABELTYPE;
44typedef void* TSILLABEL;
45
46/* Callback functions */
47typedef cvbbool_t (__stdcall *pfTransformSilLabel)(void* pPrivate, TSILLABEL LabelIn, TSILLABEL& LabelOut);
48typedef cvbbool_t (__stdcall *pfTransformSilData) (void* pPrivate, TSILDATA DataIn, TSILDATA& DataOut);
49
50/* Enums and types */
51enum TSilDataType
52{
53 SDT_Undefined = -1,
54 SDT_ImageData = 0,
55 SDT_FloatData = 1
56};
57enum TSilLabelType
58{
59 SLT_Undefined = -1,
60 SLT_String = 0,
61 SLT_Float
62};
63
64
65/* SIL Object Manipulation Functions */
66CVB_DEF_CAPI_X (TSIL, SilCreate, (TSILLABELTYPE LabelType, TSILDATATYPE DataType))
67CVB_DEF_CAPI_X (TSILLABELTYPE, SilCreateLabelTypeFloatVector, (cvbval_t nDimension))
68CVB_DEF_CAPI_X (TSILLABELTYPE, SilCreateLabelTypeString, (void))
69CVB_DEF_CAPI_X (TSILDATATYPE, SilCreateDataTypeImage, (cvbdim_t nWidth, cvbdim_t nHeight, cvbdim_t nDimension, cvbdim_t nDataType, cvbdim_t nFWLeft, cvbdim_t nFWTop, cvbdim_t nFWWidth, cvbdim_t nFWHeight, cvbdim_t nFWOrgX, cvbdim_t nFWOrgY))
70CVB_DEF_CAPI_X (TSILLABEL, SilCreateVectorLabel, (const float* pData, size_t nDimension))
71CVB_DEF_CAPI_X (TSILLABEL, SilCreateStringLabel, (const char* szString))
72CVB_DEF_CAPI_X (TSILLABEL, SilCreateStringLabelW, (const wchar_t* szString))
73CVB_DEF_CAPI_X (cvbres_t, SilChangeVectorLabel, (TSIL Sil, cvbval_t LabelIndex, float* pData, size_t nDimension))
74CVB_DEF_CAPI_X (cvbres_t, SilChangeStringLabel, (TSIL Sil, cvbval_t LabelIndex, const char* szString))
75CVB_DEF_CAPI_X (cvbres_t, SilChangeStringLabelW, (TSIL Sil, cvbval_t LabelIndex, const wchar_t* szString))
76CVB_DEF_CAPI_X (cvbres_t, SilGetStringLabel, (TSILLABEL Handle, char* szTarget, size_t& TargetSize))
77CVB_DEF_CAPI_X (cvbres_t, SilGetStringLabelW, (TSILLABEL Handle, wchar_t* szTarget, size_t& TargetSize))
78CVB_DEF_CAPI_X (TSILDATA, SilCreateImageData, (IMG SourceImage, cvbdim_t nPosX, cvbdim_t nPosY, cvbdim_t nWidth, cvbdim_t nHeight))
79CVB_DEF_CAPI_X (cvbres_t, SilGetFloatVectorLabel, (TSILLABEL Handle, float* pTarget, size_t& TargetSize))
80CVB_DEF_CAPI_X (cvbres_t, SilGetFloatVectorLabelDim, (TSILLABELTYPE LabelType, size_t& nDimension))
81CVB_DEF_CAPI_X (cvbres_t, SilGetImageData, (TSILDATA Handle, IMG& Image))
82CVB_DEF_CAPI_X (cvbres_t, SilGetImageDataGeometry, (TSILDATATYPE DataType, cvbdim_t& nWidth, cvbdim_t& nHeight, cvbdim_t& nDimension, cvbdatatype_t& nDataType))
83CVB_DEF_CAPI (cvbval_t, SilGetDataIndex, (TSIL Sil, TSILDATA Data))
84CVB_DEF_CAPI (cvbval_t, SilGetLabelIndex, (TSIL Sil, TSILLABEL Label))
85
86/* SIL Information Functions */
87CVB_DEF_CAPI_X (cvbres_t, SilDeleteData, (TSIL Sil, cvbval_t Index))
88CVB_DEF_CAPI_X (cvbres_t, SilDeleteDataByLabel, (TSIL Sil, cvbval_t LabelIndex, cvbval_t DataIndex))
89CVB_DEF_CAPI_X (cvbres_t, SilDeleteLabel, (TSIL Sil, cvbval_t Index))
90CVB_DEF_CAPI (cvbval_t, SilGetNumDataEntries, (TSIL Sil))
91CVB_DEF_CAPI (cvbval_t, SilGetNumLabelEntries, (TSIL Sil))
92CVB_DEF_CAPI_X (TSILDATATYPE, SilGetDataType, (TSIL Sil))
93CVB_DEF_CAPI_X (TSILLABELTYPE, SilGetLabelType, (TSIL Sil))
94CVB_DEF_CAPI (TSilDataType, SilGetDataTypeEnum, (TSIL Sil))
95CVB_DEF_CAPI (TSilLabelType, SilGetLabelTypeEnum, (TSIL Sil))
96CVB_DEF_CAPI_X (TSILDATA, SilGetData, (TSIL Sil, cvbval_t Index))
97CVB_DEF_CAPI_X (TSILDATA, SilGetDataByLabel, (TSIL Sil, cvbval_t LabelIndex, cvbval_t DataIndex))
98CVB_DEF_CAPI_X (TSILLABEL, SilGetLabel, (TSIL Sil, cvbval_t Index))
99CVB_DEF_CAPI (cvbval_t, SilGetNumDataReferences, (TSILLABEL Label))
100CVB_DEF_CAPI (cvbval_t, SilGetNumLabelReferences, (TSILDATA Data))
101CVB_DEF_CAPI_X (TSILDATA, SilGetDataReference, (TSILLABEL Label, long Index))
102CVB_DEF_CAPI_X (TSILLABEL, SilGetLabelReference, (TSILDATA Data, long Index))
103CVB_DEF_CAPI_X (cvbres_t, SilGetComment, (TSIL Sil, char *szComment, size_t &CommentSize))
104CVB_DEF_CAPI_X (cvbres_t, SilGetCommentW, (TSIL Sil, wchar_t *szComment, size_t &CommentSize))
105CVB_DEF_CAPI_X (cvbres_t, SilSetComment, (TSIL Sil, const char *szComment))
106CVB_DEF_CAPI_X (cvbres_t, SilSetCommentW, (TSIL Sil, const wchar_t *szComment))
107CVB_DEF_CAPI_X (cvbres_t, SilGetCreationDate, (TSIL Sil, CV_SYSTEMTIME& Date))
108CVB_DEF_CAPI_X (cvbres_t, SilGetModificationDate, (TSIL Sil, CV_SYSTEMTIME& Date))
109CVB_DEF_CAPI_X (cvbres_t, SilGetExcludedFlag, (TSILLABEL Label, cvbbool_t& Excluded))
110CVB_DEF_CAPI_X (cvbres_t, SilSetExcludedFlag, (TSILLABEL Label, cvbbool_t Exclude))
111CVB_DEF_CAPI_X (cvbres_t, SilGetStatistics, (TSIL Sil, size_t& NumClasses, size_t& MinSampleCount, size_t& MaxSampleCount, double& AverageSampleCount))
112
113/* Functions that are specific for SILs that contain Image Data */
114CVB_DEF_CAPI_X (cvbres_t, SilGetFeatureWindow, (TSILDATATYPE DataType, cvbdim_t& Left, cvbdim_t& Top, cvbdim_t& Width, cvbdim_t& Height, cvbdim_t& OriginX, cvbdim_t& OriginY))
115CVB_DEF_CAPI_X (cvbres_t, SilSetFeatureWindow, (TSILDATATYPE DataType, cvbdim_t Left, cvbdim_t Top, cvbdim_t Width, cvbdim_t Height, cvbdim_t OriginX, cvbdim_t OriginY))
116CVB_DEF_CAPI_X (cvbres_t, SilGetFringes, (TSILDATATYPE DataType, cvbdim_t& Left, cvbdim_t& Top, cvbdim_t& Right, cvbdim_t& Bottom))
117
118/* SIL Manipulation Functions */
119CVB_DEF_CAPI_X (cvbres_t, SilAddItem, (TSIL Sil, TSILDATA Data, TSILLABEL Label))
120CVB_DEF_CAPI_X (cvbres_t, SilLoad, (const char* szFile, TSIL& Sil))
121CVB_DEF_CAPI_X (cvbres_t, SilLoadW, (const wchar_t* szFile, TSIL& Sil))
122CVB_DEF_CAPI_X (cvbres_t, SilStore, (TSIL Sil, const char* szFile))
123CVB_DEF_CAPI_X (cvbres_t, SilStoreW, (TSIL Sil, const wchar_t* szFile))
124CVB_DEF_CAPI_X (cvbres_t, SilTransformLabelList, (TSIL SilIn, pfTransformSilLabel Callback, void* pPrivate, TSIL& SilOut))
125CVB_DEF_CAPI_X (cvbres_t, SilTransformDataList, (TSIL SilIn, pfTransformSilData Callback, void* pPrivate, TSIL& SilOut))
126
127/* Utility Functions */
128CVB_DEF_CAPI_X (cvbres_t, SilImportFromManto, (const char* szSil, TSIL& sil))
129CVB_DEF_CAPI_X (cvbres_t, SilImportFromMantoW, (const wchar_t* szSil, TSIL& sil))
130
131
132
133inline cvbres_t _ppSilLoadTyped (const char* szFile, TSIL& Sil)
134{
135 return CExports::_ppSilLoad (szFile, Sil);
136}
137
138inline cvbres_t _ppSilLoadTyped (const wchar_t* szFile, TSIL& Sil)
139{
140 return CExports::_ppSilLoadW (szFile, Sil);
141}
142
143inline cvbres_t _ppSilStoreTyped (TSIL Sil, const char* szFile)
144{
145 return CExports::_ppSilStore (Sil, szFile);
146}
147
148inline cvbres_t _ppSilStoreTyped (TSIL Sil, const wchar_t* szFile)
149{
150 return CExports::_ppSilStoreW (Sil, szFile);
151}
152
153inline cvbres_t _ppSilGetCommentTyped (TSIL Sil, char *szComment, size_t &CommentSize)
154{
155 return CExports::_ppSilGetComment (Sil, szComment, CommentSize);
156}
157
158inline cvbres_t _ppSilGetCommentTyped (TSIL Sil, wchar_t *szComment, size_t &CommentSize)
159{
160 return CExports::_ppSilGetCommentW (Sil, szComment, CommentSize);
161}
162
163inline cvbres_t _ppSilSetCommentTyped (TSIL Sil, const char *szComment)
164{
165 return CExports::_ppSilSetComment (Sil, szComment);
166}
167
168inline cvbres_t _ppSilSetCommentTyped (TSIL Sil, const wchar_t *szComment)
169{
170 return CExports::_ppSilSetCommentW (Sil, szComment);
171}
172
173inline cvbres_t _ppSilGetStringLabelTyped (TSILLABEL Handle, char* szTarget, size_t& TargetSize)
174{
175 return CExports::_ppSilGetStringLabel (Handle, szTarget, TargetSize);
176}
177
178inline cvbres_t _ppSilGetStringLabelTyped (TSILLABEL Handle, wchar_t* szTarget, size_t& TargetSize)
179{
180 return CExports::_ppSilGetStringLabelW (Handle, szTarget, TargetSize);
181}
182
183inline cvbres_t _ppSilImportFromMantoTyped (const char* szSil, TSIL& sil)
184{
185 return CExports::_ppSilImportFromManto (szSil, sil);
186}
187
188inline cvbres_t _ppSilImportFromMantoTyped (const wchar_t* szSil, TSIL& sil)
189{
190 return CExports::_ppSilImportFromMantoW (szSil, sil);
191}
192
193inline cvbres_t _ppSilChangeStringLabelTyped (TSIL Sil, cvbval_t LabelIndex, const char* szString)
194{
195 return CExports::_ppSilChangeStringLabel (Sil, LabelIndex, szString);
196}
197
198inline cvbres_t _ppSilChangeStringLabelTyped (TSIL Sil, cvbval_t LabelIndex, const wchar_t* szString)
199{
200 return CExports::_ppSilChangeStringLabelW (Sil, LabelIndex, szString);
201}
202
203inline TSILLABEL _ppSilCreateStringLabelTyped (const char* szString)
204{
205 return CExports::_ppSilCreateStringLabel (szString);
206}
207
208inline TSILLABEL _ppSilCreateStringLabelTyped (const wchar_t* szString)
209{
210 return CExports::_ppSilCreateStringLabelW (szString);
211}
212
213} /* namespace CExports */
214
215CVB_END_INLINE_NS
216
217} /* namespace Cvb */
218
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17