GoWebScan API
GoWebScanDetectionTask.h
Go to the documentation of this file.
1 /**
2 * @file GoWebScanDetectionTask.h
3 * @brief Declares a GoWebScanDetectionTask object.
4 *
5 *
6 * @internal
7 * Copyright (C) 2017-2026 by LMI Technologies Inc.
8 * Licensed under the MIT License.
9 * Redistributed files must retain the above copyright notice.
10 */
11 
12 #ifndef GO_WEB_SCAN_DETECTION_TASK_H
13 #define GO_WEB_SCAN_DETECTION_TASK_H
14 
19 
20 /**
21 * @class GoWebScanDetectionTask
22 * @extends kObject
23 * @ingroup GoWebScanSdk-Control
24 * @brief Represents a task for identifying discrete objects within presence data, aggregating
25 * web tiles into complete objects, performing optional post-processing, and emitting the
26 * results. GoWebScanDetectionTask is only used in Detection Mode, and is the final stage
27 * before results are delivered back to the GoWebScanProcess object.
28 *
29 * Upon arrival, web messages are immediately added to a GoWebScanDetector object, which
30 * identifies groups of tiles forming a complete object. When the GoWebScanDetector finds
31 * a complete object, a detector frame is passed back to GoWebScanDetectionTask for
32 * processing. Individual web tiles are appended to form object-sized images (one image
33 * per top/bottom group and per profile/vision/tracheid type), which are then (optionally)
34 * post-processed. The final results are combined into a single GoWebScanSystemMsg and
35 * emitted from GoWebScanDetectionTask.
36 *
37 * Processing steps:
38 * -# GoWebScanSystemMsg objects from GoWebScanWebTask are added to the GoWebScanDetector
39 * algorithm.
40 * -# After the detector has found a complete object, the task combines the web tiles
41 * containing the object.
42 * -# If the edge filter option is enabled, edge spikes and disconnected regions are
43 * filtered.
44 * -# If the background filter is enabled, the background of tracheid and vision data is
45 * removed.
46 * -# The final GoWebScanSystemMsg is emitted.
47 * @see GoWebScanDetector, GoWebScanWebTask, GoWebScanSystemMsg, GoWebScanEdgeFilter
48 */
50 
51 // Forward declaration
53 
54 /**
55  * Constructs a GoWebScanDetectionTask object.
56  *
57  * @public @memberof GoWebScanDetectionTask
58  * @param task Receives the constructed GoWebScanDetectionTask object.
59  * @param process Associated GoWebScanProcess object which will receive the detected result.
60  * @param config System configuration.
61  * @param allocator Memory allocator (or kNULL for default).
62  * @return Operation status.
63  */
65 
66 /**
67 * Sets the handler for receiving emitted detected boards.
68 *
69 * @public @memberof GoWebScanDetectionTask
70 * @param task GoWebScanDetectionTask object.
71 * @param send Callback function
72 * @param context Receiver argument for callback.
73 * @return Operation status.
74 */
76 
77 /**
78  * Adds a message to the processing queue. Dequeues a message at the end of the queue to submit
79  * to the pipe for scheduling if no other job is currently pending.
80  *
81  * @public @memberof GoWebScanDetectionTask
82  * @param task GoWebScanDetectionTask object.
83  * @param msg Message to enqueue.
84  * @return Operation status.
85  */
87 
88 /**
89  * Clears detector algorithm and resets internal variables.
90  *
91  * @public @memberof GoWebScanDetectionTask
92  * @param task GoWebScanDetectionTask object.
93  * @return Operation status.
94  */
96 
97 #include <GoWebScanSdk/GoWebScanDetectionTask.x.h>
98 
99 #endif
Declares the GoWebScanPipeTask class.
Represents a task for processing raw sensor data to produce system web tiles (Web mode) or detected o...
Declares a GoWebScanPipe object.
kStatus(kCall * GoWebScanPipeSendFx)(kPointer context, GoWebScanPipeMsg msg)
Defines the signature of the handler used by tasks to receive a message from the pipe.
Definition: GoWebScanPipe.h:33
kStatus GoWebScanDetectionTask_SetReceiver(GoWebScanDetectionTask task, GoWebScanPipeSendFx send, kPointer context)
Sets the handler for receiving emitted detected boards.
Essential GoWebScan declarations.
Represents a task for identifying discrete objects within presence data, aggregating web tiles into c...
kStatus GoWebScanDetectionTask_Send(GoWebScanDetectionTask task, GoWebScanPipeMsg msg)
Adds a message to the processing queue.
kStatus GoWebScanDetectionTask_Clear(GoWebScanDetectionTask task)
Clears detector algorithm and resets internal variables.
kStatus GoWebScanDetectionTask_Construct(GoWebScanDetectionTask *task, GoWebScanProcess process, GoWebScanConfig config, kAlloc allocator)
Constructs a GoWebScanDetectionTask object.
Base class for a msg that can be processed with a GoWebScanPipeTask and submitted to the GoWebScanPip...
Represents a container for system-level parameters which are translated from user parameters set in G...
Declares a GoWebScanConfig object.