CVB++ 15.0
c_edge.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
15namespace Cvb
16{
17
18CVB_BEGIN_INLINE_NS
19
20namespace CExports
21{
22
23
24
25
26/* DLL object types */
27typedef void* PROJECTIONEX;
28typedef void* EDGERESULTS;
29
30/* Enums and types */
31struct TEdgeResult
32{
33 double x;
34 double y;
35 double Quality;
36};
37
38struct TDoubleProjection
39{
40 double x;
41 double y;
42 double Value;
43};
44typedef TDoubleProjection *pDoubleProjection;
45
46enum TEdgePolarity
47{
48 POLARITY_DONT_CARE = 0,
49 POLARITY_POSITIVE = 1,
50 POLARITY_NEGATIVE = 2
51};
52typedef TEdgeResult *PEdgeResult;
53
54
55/* Edgelib exported functions */
56CVB_DEF_CAPI_X (cvbbool_t, TFindFirstEdge, (IMG Image,
57 cvbdim_t Index,
58 cvbdensity_t Density,
59 TArea Area,
60 double Threshold,
61 cvbbool_t PositiveEdge,
62 TEdgeResult& Result))
63CVB_DEF_CAPI_X (cvbbool_t, TFindEdgePair, (IMG Image,
64 cvbdim_t Index,
65 cvbdensity_t Density,
66 TArea Area,
67 double Threshold1,
68 cvbbool_t PositiveEdge1,
69 TEdgeResult& Result1,
70 double Threshold2,
71 cvbbool_t PositiveEdge2,
72 TEdgeResult& Result2))
73CVB_DEF_CAPI_X (cvbbool_t, TFindAllEdges, (IMG Image,
74 cvbdim_t Index,
75 cvbdensity_t Density,
76 TArea Area,
77 double Threshold,
78 cvbbool_t PositiveEdge,
79 size_t lMaxEdges,
80 PEdgeResult pResult,
81 size_t& lEdgeCount))
82
83CVB_DEF_CAPI_X (cvbbool_t, TSFindFirstEdge, (IMG Image,
84 cvbdim_t Index,
85 cvbdensity_t Density,
86 TArea Area,
87 double Threshold,
88 cvbbool_t PositiveEdge,
89 TEdgeResult& Result))
90CVB_DEF_CAPI_X (cvbbool_t, TSFindEdgePair, (IMG Image,
91 cvbdim_t Index,
92 cvbdensity_t Density,
93 TArea Area,
94 double Threshold1,
95 cvbbool_t PositiveEdge1,
96 TEdgeResult& Result1,
97 double Threshold2,
98 cvbbool_t PositiveEdge2,
99 TEdgeResult& Result2))
100CVB_DEF_CAPI_X (cvbbool_t, TSFindAllEdges, (IMG Image,
101 cvbdim_t Index,
102 cvbdensity_t Density,
103 TArea Area,
104 double Threshold,
105 cvbbool_t PositiveEdge,
106 size_t MaxEdges,
107 PEdgeResult pResult,
108 size_t& lEdgeCount))
109
110CVB_DEF_CAPI_X (cvbbool_t, CFindFirstEdge, (IMG Image,
111 cvbdim_t Index,
112 cvbdensity_t Density,
113 TArea Area,
114 double Threshold,
115 cvbbool_t PositiveEdge,
116 TEdgeResult& Result))
117CVB_DEF_CAPI_X (cvbbool_t, CFindEdgePair, (IMG Image,
118 cvbdim_t Index,
119 cvbdensity_t Density,
120 TArea Area,
121 double Threshold1,
122 cvbbool_t PositiveEdge1,
123 TEdgeResult& Result1,
124 double Threshold2,
125 cvbbool_t PositiveEdge2,
126 TEdgeResult& Result2))
127CVB_DEF_CAPI_X (cvbbool_t, CFindAllEdges, (IMG Image,
128 cvbdim_t Index,
129 cvbdensity_t Density,
130 TArea Area,
131 double Threshold,
132 cvbbool_t PositiveEdge,
133 size_t MaxEdges,
134 PEdgeResult pResult,
135 size_t& EdgeCount))
136
137CVB_DEF_CAPI_X (cvbbool_t, CSFindFirstEdge, (IMG Image,
138 cvbdim_t Index,
139 cvbdensity_t Density,
140 TArea Area,
141 double Threshold,
142 cvbbool_t PositiveEdge,
143 TEdgeResult& Result))
144CVB_DEF_CAPI_X (cvbbool_t, CSFindEdgePair, (IMG Image,
145 cvbdim_t Index,
146 cvbdensity_t Density,
147 TArea Area,
148 double Threshold1,
149 cvbbool_t PositiveEdge1,
150 TEdgeResult& Result1,
151 double Threshold2,
152 cvbbool_t PositiveEdge2,
153 TEdgeResult& Result2))
154CVB_DEF_CAPI_X (cvbbool_t, CSFindAllEdges, (IMG Image,
155 cvbdim_t Index,
156 cvbdensity_t Density,
157 TArea Area,
158 double Threshold,
159 cvbbool_t PositiveEdge,
160 size_t MaxEdges,
161 PEdgeResult pResult,
162 size_t& EdgeCount))
163CVB_DEF_CAPI_X (cvbbool_t, WriteProjection, (IMG Image,
164 cvbdim_t Index,
165 cvbdensity_t Density,
166 TArea Area))
167CVB_DEF_CAPI_X (cvbbool_t, ReleaseProjection, (PROJECTIONEX Projection))
168CVB_DEF_CAPI_X (cvbbool_t, GetProjectionEx, (IMG Image,
169 cvbdim_t Index,
170 cvbdensity_t Density,
171 TArea Area,
172 PROJECTIONEX& Projection))
173CVB_DEF_CAPI_X (cvbbool_t, GetNormProjectionEx, (IMG Image,
174 cvbdim_t Index,
175 cvbdensity_t Density,
176 TArea Area,
177 PROJECTIONEX& Projection))
178CVB_DEF_CAPI_X (cvbbool_t, Normalize, (PROJECTIONEX ProjectionIn,
179 PROJECTIONEX& ProjectionOut))
180CVB_DEF_CAPI_X (cvbbool_t, Filter, (PROJECTIONEX Pin,
181 cvbval_t *pKernel,
182 size_t Size,
183 PROJECTIONEX& Projection))
184CVB_DEF_CAPI_X (cvbbool_t, Derivation, (PROJECTIONEX ProjectionIn,
185 PROJECTIONEX& ProjectionOut))
186CVB_DEF_CAPI_X (cvbbool_t, ZeroCrossings, (PROJECTIONEX Projection,
187 size_t MaxCount,
188 EDGERESULTS& Results))
189CVB_DEF_CAPI_X (cvbbool_t, GetLength, (PROJECTIONEX Projection,
190 size_t& Length))
191CVB_DEF_CAPI_X (cvbbool_t, CopyDoubleBuffer, (PROJECTIONEX Projection,
192 pDoubleProjection pBuffer))
193CVB_DEF_CAPI_X (cvbbool_t, ReleaseEdgeResults, (EDGERESULTS Results))
194CVB_DEF_CAPI (size_t, EdgeResultsCount, (EDGERESULTS Results))
195CVB_DEF_CAPI_X (cvbbool_t, EdgeResult, (EDGERESULTS Results,
196 size_t index,
197 double& x,
198 double& y,
199 double& q))
200CVB_DEF_CAPI_X (cvbbool_t, OSFindFirstEdge, (IMG Image,
201 cvbdim_t Index,
202 cvbdensity_t Density,
203 TArea Area,
204 double Threshold,
205 TEdgePolarity Polarity,
206 TEdgeResult& Result))
207CVB_DEF_CAPI_X (cvbbool_t, OSFindEdgePair, (IMG Image,
208 cvbdim_t Index,
209 cvbdensity_t Density,
210 TArea Area,
211 double Threshold1,
212 TEdgePolarity Polarity1,
213 TEdgeResult& Result1,
214 double Threshold2,
215 TEdgePolarity Polarity2,
216 TEdgeResult& Result2))
217CVB_DEF_CAPI_X (cvbbool_t, OSFindAllEdges, (IMG Image,
218 cvbdim_t Index,
219 cvbdensity_t Density,
220 TArea Area,
221 double Threshold,
222 TEdgePolarity Polarity,
223 EDGERESULTS& results))
224CVB_DEF_CAPI_X (cvbbool_t, OSFindBestEdge, (IMG Image,
225 cvbdim_t Index,
226 cvbdensity_t Density,
227 TArea Area,
228 TEdgePolarity Polarity,
229 TEdgeResult& Result))
230
231inline void _ppReleaseEdgeResultsVoid(void * handle)
232{
233 CExports::_ppReleaseEdgeResults(handle);
234}
235
236} /* namespace CExports */
237
238CVB_END_INLINE_NS
239
240} /* namespace Cvb */
241
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17