You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Added new set functions
- Fixed some issues after review (multi matcher did not work)
- Showing TOTAL + VALID matches
- Show matchID + score in image
Copy file name to clipboardExpand all lines: CSK_Module_MultiImageEdgeMatcher/pages/pages/CSK_Module_MultiImageEdgeMatcher/CSK_Module_MultiImageEdgeMatcher.css
Copy file name to clipboardExpand all lines: CSK_Module_MultiImageEdgeMatcher/pages/pages/CSK_Module_MultiImageEdgeMatcher/CSK_Module_MultiImageEdgeMatcher.html
Copy file name to clipboardExpand all lines: CSK_Module_MultiImageEdgeMatcher/project.mf.xml
+109-5Lines changed: 109 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -14,11 +14,18 @@ Typically to configure this module to work with other modules you should do this
14
14
1) If multiple instances are needed, these can be added via 'addInstance' (not needed if you only use 1 single instance). +
15
15
2) Select the instance you want to configur via setInstance(). +
16
16
3) Set the event providing the images to be processed e.g. via setRegisterEvent('CSK_ImagePlayer.OnNewImage'). +
17
-
4) Optionally edit EdgeMatcher parameters via 'setEdgeThreshold', 'setMaximumMatches', 'setDownsampleFactor'. +
17
+
4) Optionally edit EdgeMatcher parameters via 'setEdgeThreshold', 'setMaximumMatches', 'setDownsampleFactor', ... (check other 'set....' function as well..). +
18
+
INFO: Regarding further details of the EdgeMatcher parameters please read the AppSpace API documentation. +
18
19
5) Press the "Teach Mode" button within the UI. It will provide a ROI (Region of interest) editor to select an object and show its tought edges. Press the button again to confirm the tought structure.+
19
20
6) Define the minimum valid score via 'setMinScore'. +
20
21
7) The module will align the image in relation to the first found object. Other modules can register on the 'CSK_MultiImageEdgeMatcher.OnNewAlignedImage[NUM]' event to receive the aligned image for further processing, on the 'CSK_MultiImageEdgeMatcher.OnNewTransformation[NUM]' event to receive the transformation itself or on 'OnNewStatusFoundMatchesNUM' / 'OnNewStatusMatchScoreResultNUM' to receive the processing result values. +
<itemdesc="Set if image contains a lot of other edges, structures, noise, clutter in areas not belonging to the object of interest (like barcodes and text which generate a lot of edge responses)."name="HIGH">HIGH</item>
26
+
<itemdesc="Set for clean scenes to gain speed."name="MEDIUM">MEDIUM</item>
27
+
<itemdesc="Set for clean scenes to gain speed."name="LOW">LOW</item>
28
+
</enum>
22
29
<serves>
23
30
<eventname="OnNewStatusLoadParameterOnReboot">
24
31
<desc>Notify status if parameters should be loaded on app/device boot up.</desc>
@@ -36,8 +43,8 @@ Typically to configure this module to work with other modules you should do this
36
43
<desc>Event to share processing parameters to the instances.</desc>
37
44
<paramdesc="Numeric identifier of the instance to receive the parameter."multiplicity="1"name="objectNo"type="int"/>
38
45
<paramdesc="Name of the parameter."multiplicity="1"name="parameter"type="string"/>
39
-
<paramdesc="Value of the parameter."multiplicity="1"name="value"type="auto"/>
40
-
<paramdesc="Numeric identifier, if parameter is for specific internal used object."multiplicity="?"name="internalObjectNo"type="int"/>
46
+
<paramdesc="Value of the parameter."multiplicity="?"name="value"type="auto"/>
47
+
<paramdesc="Numeric identifier, if parameter is for specific internal used object."multiplicity="?"name="internalObjectNo"type="int"/>
41
48
</event>
42
49
<eventname="OnNewSelectedInstance">
43
50
<desc>Notify if new instance is selected.</desc>
@@ -123,7 +130,7 @@ INFO: Other modules can check via "Script.isServedAsEvent" if event of sepecific
123
130
Example of dynamically created event to provide score of match. +
124
131
NUM will be replaced by the numeric identifier of instance (e.g. "OnNewStatusMatchScoreResult1"). +
125
132
INFO: Other modules can check via "Script.isServedAsEvent" if event of sepecific instance exists.</desc>
126
-
<paramdesc="Score of match."multiplicity="1"name="score"type="float"/>
133
+
<paramdesc="Scores of matches."multiplicity="*"name="score"type="float"/>
127
134
</event>
128
135
<eventname="OnNewStatusMatchScoreResult">
129
136
<desc>Notify score of found match of currently selected EdgeMatcher instance.</desc>
@@ -153,6 +160,60 @@ INFO: Other modules can check via "Script.isServedAsEvent" if event of sepecific
153
160
<desc>Notify pixel to transform result in y direction.</desc>
154
161
<paramdesc="Pixel in y direction."multiplicity="1"name="value"type="int"/>
155
162
</event>
163
+
<eventname="OnNewStatusFoundValidMatches">
164
+
<desc>Notify amount of found matches with valid score of currently selected EdgeMatcher instance.</desc>
165
+
<paramdesc="Amount of found matches."multiplicity="1"name="amount"type="string"/>
166
+
</event>
167
+
<eventname="OnNewStatusFoundValidMatchesNUM">
168
+
<desc>Example of dynamically created event to provide result of found matches with valid score. +
169
+
NUM will be replaced by the number of instance (e.g. "OnNewStatusFoundValidMatches1"). +
170
+
INFO: Other modules can check via "Script.isServedAsEvent" if event of sepecific instance exists.</desc>
171
+
<paramdesc="Amount of found matches with valid score."multiplicity="1"name="amount"type="int"/>
172
+
</event>
173
+
<eventname="OnNewStatusTought">
174
+
<desc>Notify if matcher was teached already.</desc>
<desc>Function to set the minimum separation between the centers of object matches.</desc>
307
+
<paramdesc="The minimum separation between the centers of two objects in image world units. The default value is 50."multiplicity="1"name="minSeparation"type="float"/>
308
+
</function>
309
+
<functionname="setFineSearch">
310
+
<desc>Function to set status if fine search should be performed.</desc>
311
+
<paramdesc="Default is true."multiplicity="1"name="status"type="bool"/>
312
+
</function>
313
+
<functionname="setRotationRange">
314
+
<desc>Function to set rotation interval to search in relative to the teach orientation.</desc>
315
+
<paramdesc="Angle in degree unit, the maximum deviation from the original object orientation to search for. The default value is 180 degrees, i.e., full rotation."multiplicity="1"name="range"type="float"/>
316
+
</function>
317
+
<functionname="setPriorRotation">
318
+
<desc>Function to set prior orientation for rotation interval (see TODO).</desc>
319
+
<paramdesc="Prior orientation in degrees. The orientation search range is centered around this orientation. Default is zero (i.e. same orientation as teach object)."multiplicity="1"name="orientation"type="float"/>
320
+
</function>
321
+
<functionname="setMinScale">
322
+
<desc>Function to set minimum of scale interval to search relative to the teach size.</desc>
323
+
<paramdesc="The smallest scale factor to search for. Lower limit is 0.8. Default value is 1.0."multiplicity="1"name="value"type="float"/>
324
+
</function>
325
+
<functionname="setMaxScale">
326
+
<desc>Function to set maximum of scale interval to search relative to the teach size.</desc>
327
+
<paramdesc="The largest scale factor to search for. Upper limit is 1.2. Default value is 1.0."multiplicity="1"name="value"type="float"/>
328
+
</function>
329
+
<functionname="setPriorScale">
330
+
<desc>Function to set prior scale factor of scale interval to search relative to the teach size.</desc>
331
+
<paramdesc="Set to the expected scale of the object to find, relative to the size of the teach object. E.g. 1.25 if the object to find is 25% larger than the teach object. Min: 0.1. Max: 10"multiplicity="1"name="value"type="float"/>
332
+
</function>
333
+
<functionname="setTileCount">
334
+
<desc>Function to set into how many tile images the match image should be splitted into.</desc>
335
+
<paramdesc="Number of tile images to split into. 0 gives automatic selection. 1 disables tiling. Default: 0."multiplicity="1"name="value"type="int"/>
336
+
</function>
337
+
<functionname="setTimeout">
338
+
<desc>Function to set the time the match call should abort if time exceeds.</desc>
339
+
<paramdesc="Time in seconds after which the algorithm should abort. The default value is 5 seconds."multiplicity="1"name="value"type="float"/>
0 commit comments