SwisTrack/Components/IDReaderRing
外观
< SwisTrack | Components
此组件通过读取先前检测到的粒子周围的圆形条形码来检测标记的 ID 和旋转。条形码的 ID 和旋转通过将条形码与所有可能的代码进行相关来确定,这些代码是在如下所示的 XML 文件中定义的
<?xml version="1.0"?> <objectlist> <objects> <object id="1"> <barcode> <chips length="14" symbol="15" /> <angle>0</angle> </barcode> </object> <object id="2"> <barcode> <chips length="14" symbol="332" /> <angle>0</angle> </barcode> </object> <object id="3"> <barcode> <chips length="14" symbol="6822" /> <angle>0</angle> </barcode> </object> </objects> </objectlist>
该算法还确定每个检测的置信度级别,这可能有助于拒绝错误检测的粒子(误报)。
该算法分两个步骤进行
- 位于粒子周围环上的所有像素都用它们的角度进行索引。像素的角度和半径使用像素的中心和(潜在的亚分辨率)粒子位置来计算。
- 然后将这些索引像素与所有 ID 在所有可能的角度以 1 度间隔进行相关。
最佳匹配(最高相关性)被分配给粒子。
请参考IDReaderRing 示例以获取生成合适标记的脚本。
请注意,该算法假设条形码是完美的圆形,因此在发生较大变形时表现不佳。此外,尽管该算法在配置良好的设置中接近最优,但需要相当高的分辨率(以及对焦良好的镜头)才能读取此类代码。例如,14 芯片代码在图像上至少应显示为 20x20 像素。
这种类型的标记代码有特定的名称吗? 它可能是Wikipedia: ShotCode 还是其他Wikipedia: 2D 条形码?
文件:SwisTrack IDReaderRingMarkers.png
使用例如 BlobDetectionCircularHough 组件检测到的一组粒子,加上带有圆形条形码的灰度图像。请注意,粒子中心必须位于圆形条形码的中心。
同一组粒子,附加了 ID、方向和置信度值。
环的外半径。
环的内半径。请注意,内半径应选择得当,以便标记中心的 blob(如果有)不属于环的一部分。
包含对象列表的 XML 文件(见上文描述)。