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 檔案(見上文描述)。