GoWebScan API
GoWebScanCalProcessor.h
Go to the documentation of this file.
1 /**
2 * @file GoWebScanCalProcessor.h
3 * @brief Declares a GoWebScanCalProcessor object.
4 *
5 * @internal
6 * Copyright (C) 2017-2026 by LMI Technologies Inc.
7 * Licensed under the MIT License.
8 * Redistributed files must retain the above copyright notice.
9 */
10 
11 #ifndef GO_WEB_SCAN_CAL_PROCESSOR_H
12 #define GO_WEB_SCAN_CAL_PROCESSOR_H
13 
21 
22 /**
23 * @struct GoWebScanCalCombinerParams
24 * @extends kValue
25 * @ingroup GoWebScanSdk-Calibration
26 * @brief Represents parameters of the calibration combiner algorithm.
27 */
28 typedef struct GoWebScanCalProcessorIssue
29 {
30  GoWebScanCalActivity activity; ///< Stage or activity in the system calibration processing during which the vision issue occurred.
31  GoWebScanCalNodeStatus status; ///< Type of issue.
32  k32s sensorId; ///< Sensor serial number.
33  kSSize bankId; ///< Sensor camera index.
34 
35 } GoWebScanCalProcessorIssue;
36 
37 /**
38 * @class GoWebScanCalProcessor
39 * @extends kObject
40 * @ingroup GoWebScanSdk-Calibration
41 * @brief Represents an algorithm for processing system tiles containing a calibration bar
42 * and generating the calibration containing profile Z and Y offsets and vision Y
43 * offsets and gains. Refer to GoWebScanCal for a description of the system
44 * calibration outputs and usage.
45 *
46 * Internally, GoWebScanCalProcessor delegates the processing of offsets and gains
47 * for each node to the GoWebScanCalProcessorNode class. After each node has been
48 * processed, GoWebScanCalProcessor adjusts the profile and vision Y offsets per
49 * node based on the overall system Y bias (per plane). If
50 * GoWebScanConfig_CalDetectLocators() is enabled, the class also calculates the X
51 * bias per plane and adjusts the node X offsets. If
52 * GoWebScanConfig_CalUseVisionIntensity() is not enabled, the class also calculates
53 * the vision gain bias per channel and adjusts the node gains.
54 *
55 * At the end of processing, a GoWebScanCal object is constructed and returned
56 * containing the offsets, gains, and other calibration properties.
57 *
58 * Refer to GoWebScanCalProcessorNode for a detailed explanation of the calibration
59 * processing sequence.
60 * @see GoWebScanCal, GoWebScanCalProcessorNode, GoWebScanConfig_CalDetectLocators,
61 * GoWebScanConfig_CalUseVisionIntensity
62 */
64 
65 /**
66  * Constructs a GoWebScanCalProcessor object.
67  *
68  * @public @memberof GoWebScanCalProcessor
69  * @param processor Receives the constructed GoWebScanCalProcessor object.
70  * @param config System configuration.
71  * @param allocator Memory allocator (or kNULL for default).
72  * @return Operation status.
73  */
74 GoWebScanFx(kStatus) GoWebScanCalProcessor_Construct(GoWebScanCalProcessor* processor, GoWebScanConfig config, kAlloc allocator);
75 
76 /**
77  * Executes the system calibration processing on an input dataset (consisting of
78  * Y-matched tile containing the calibration bar) and constructs and outputs
79  * the calibration object. Refer to GoWebScanCal for a description of the system
80  * calibration outputs and usage.
81  *
82  * @public @memberof GoWebScanCalProcessor
83  * @param processor GoWebScanCalProcessor object.
84  * @param input Calibration input dataset.
85  * @param calibration Receives the constructed GoWebScanCal object.
86  * @return Operation status.
87  * @see GoWebScanCal, GoWebScanCalProcessorNode
88  */
90 
91 /**
92  * Gets a flag for whether the processing of profile data had any warnings. Warnings
93 * mean the calibration completed but may be suboptimal.
94  *
95  * @public @memberof GoWebScanCalProcessor
96  * @param processor GoWebScanCalProcessor object.
97  * @return Boolean for whether profile calibration processing had warnings.
98  */
100 
101 /**
102 * Gets a flag for whether the processing of vision data had any warnings. Warnings
103 * mean the calibration completed but may be suboptimal.
104 *
105 * @public @memberof GoWebScanCalProcessor
106 * @param processor GoWebScanCalProcessor object.
107 * @return Boolean for whether vision calibration processing had warnings.
108 */
110 
111 /**
112 * Gets a flag for whether the processing of profile data had any errors. Errors mean all
113 * or some aspects of the processing were not able to proceed and the generated
114 * calibration file may be incomplete.
115 *
116 * @public @memberof GoWebScanCalProcessor
117 * @param processor GoWebScanCalProcessor object.
118 * @return Boolean for whether profile calibration processing had errors.
119 */
121 
122 /**
123 * Gets a flag for whether the processing of vision data had any errors. Errors mean all
124 * or some aspects of the processing were not able to proceed and the generated
125 * calibration file may be incomplete.
126 *
127 * @public @memberof GoWebScanCalProcessor
128 * @param processor GoWebScanCalProcessor object.
129 * @return Boolean for whether vision calibration processing had errors.
130 */
132 
133 /**
134 * Gets the number of system calibration processor nodes.
135 *
136 * @public @memberof GoWebScanCalProcessor
137 * @param processor GoWebScanCalProcessor object.
138 * @return Count of processor nodes.
139 */
141 
142 /**
143 * Gets the number of profile issues that occurred during system calibration processing.
144 *
145 * @public @memberof GoWebScanCalProcessor
146 * @param processor GoWebScanCalProcessor object.
147 * @param nodeIndex Index of calibration processor node.
148 * @return Count of issues.
149 */
151 
152 /**
153 * Gets the profile issue that occurred during system calibration processing at the specified index.
154 *
155 * @public @memberof GoWebScanCalProcessor
156 * @param processor GoWebScanCalProcessor object.
157 * @param nodeIndex Index of calibration processor node.
158 * @param issueIndex Index of profile issue.
159 * @return Struct containing information on the issue.
160 */
161 GoWebScanFx(GoWebScanCalProcessorIssue) GoWebScanCalProcessor_ProfileIssueAt(GoWebScanCalProcessor processor, kSize nodeIndex, kSize issueIndex);
162 
163 /**
164 * Gets the number of vision issues that occurred during system calibration processing.
165 *
166 * @public @memberof GoWebScanCalProcessor
167 * @param processor GoWebScanCalProcessor object.
168 * @param nodeIndex Index of calibration processor node.
169 * @return Count of issues.
170 */
172 
173 /**
174 * Gets the vision issue that occurred during system calibration processing at the specified index.
175 *
176 * @public @memberof GoWebScanCalProcessor
177 * @param processor GoWebScanCalProcessor object.
178 * @param nodeIndex Index of calibration processor node.
179 * @param issueIndex Index of vision issue.
180 * @return Struct containing information on the issue.
181 */
182 GoWebScanFx(GoWebScanCalProcessorIssue) GoWebScanCalProcessor_VisionIssueAt(GoWebScanCalProcessor processor, kSize nodeIndex, kSize issueIndex);
183 
184 /**
185 * Reset the processor to its original state.
186 *
187 * @public @memberof GoWebScanCalProcessor
188 * @param processor GoWebScanCalProcessor object.
189 * @return Struct containing information on the issue.
190 */
192 
193 #include <GoWebScanSdk/GoWebScanCalProcessor.x.h>
194 
195 #endif
kSize GoWebScanCalProcessor_VisionIssueCount(GoWebScanCalProcessor processor, kSize nodeIndex)
Gets the number of vision issues that occurred during system calibration processing.
GoWebScanCalProcessorIssue GoWebScanCalProcessor_VisionIssueAt(GoWebScanCalProcessor processor, kSize nodeIndex, kSize issueIndex)
Gets the vision issue that occurred during system calibration processing at the specified index...
Represents an algorithm for processing system tiles containing a calibration bar and generating the c...
GoWebScanCalProcessorIssue GoWebScanCalProcessor_ProfileIssueAt(GoWebScanCalProcessor processor, kSize nodeIndex, kSize issueIndex)
Gets the profile issue that occurred during system calibration processing at the specified index...
Represents a type of error or warning that occurred during system calibration processing of a node...
Declares a GoWebScanCalInput object.
kStatus GoWebScanCalProcessor_Construct(GoWebScanCalProcessor *processor, GoWebScanConfig config, kAlloc allocator)
Constructs a GoWebScanCalProcessor object.
Essential GoWebScan declarations.
kBool GoWebScanCalProcessor_VisionHasErrors(GoWebScanCalProcessor processor)
Gets a flag for whether the processing of vision data had any errors.
Represents a stage or activity in the system calibration processing pipeline.
kSize GoWebScanCalProcessor_NodeCount(GoWebScanCalProcessor processor)
Gets the number of system calibration processor nodes.
Represents Y-matched system data containing a calibration bar, used for calibration processing...
kStatus GoWebScanCalProcessor_Reset(GoWebScanCalProcessor processor)
Reset the processor to its original state.
Declares a GoWebScanCalNode object.
Declares a GoWebScanCalInputNode object.
kStatus GoWebScanCalProcessor_Execute(GoWebScanCalProcessor processor, GoWebScanCalInput input, GoWebScanCal *calibration)
Executes the system calibration processing on an input dataset (consisting of Y-matched tile containi...
Declares a GoWebScanCal object.
kBool GoWebScanCalProcessor_ProfileHasErrors(GoWebScanCalProcessor processor)
Gets a flag for whether the processing of profile data had any errors.
Represents a container for the system calibration. The system calibration corrects for mounting diffe...
kBool GoWebScanCalProcessor_VisionHasWarnings(GoWebScanCalProcessor processor)
Gets a flag for whether the processing of vision data had any warnings.
Declares a GoWebScanConfigGroup object.
kSize GoWebScanCalProcessor_ProfileIssueCount(GoWebScanCalProcessor processor, kSize nodeIndex)
Gets the number of profile issues that occurred during system calibration processing.
Represents a container for system-level parameters which are translated from user parameters set in G...
Declares a GoWebScanConfig object.
kBool GoWebScanCalProcessor_ProfileHasWarnings(GoWebScanCalProcessor processor)
Gets a flag for whether the processing of profile data had any warnings.