HALCON region和xld各种排序的算法实现

用Halcon解码时,如果一张图里面有多个码,它通常可以把这些码都解出来,并且生成对应的解码结果字符串元组(也就是下面的DecodedDataStrings),如果有多个码,那么该元组就有多个元素。

① find_bar_code(Image : SymbolRegions : BarCodeHandle, CodeType : DecodedDataStrings)

② find_data_code_2d(Image : SymbolXLDs : DataCodeHandle, GenParamName, GenParamValue : ResultHandles, DecodedDataStrings)

一维码和二维码解码的区别是:一维码解码后的显示区域是一个region(SymbolRegions ),而二维码解码后的显示区域是一个xld(SymbolXLDs )。

码的显示区域和解码字符串是一一对应的。但是有多个码时,不同码的显示区域顺序本身是乱排的,并不是按照“行坐标”或者“列坐标”排序的。如何让它们有序排列,并且字符串和它们的对应关系不变呢?这篇文章即是为了解决这个问题。

先了解一个排序算子:tuple_sort_index( : : Tuple : Indices)

基本上,Halcon中绝大多数的排序问题,都需要用到这个算子。关于这个算子的理解,详见我之前的文章:Halcon选择一堆region中面积第N大的region的算法实现

排序算法设计分析:

① 需排序的数据对假设是(region1, string1)、(region2, string2)、(region3, string3)、(region4, string4)……

② 以一维码、二维码以及它们对应的字符串为例,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值