截至目前,当 Android Vision 检测到 QR 码时,数组“Barcode.cornerPoints”(包含代码的角点)以看似随机的顺序填充。我需要确定 4 个角点中的哪 3 个包含“方向方 block ”。
我目前使用的方法非常不令人满意:
对于每个检测到的 QR 码,我都被迫创建一个位图并尝试使用另一个库 (Zxing) 再次找到 QR 码,该库始终以一致的旋转顺序返回角点。
如果 Zxing 找到 QR 码(遗憾的是五分之四没有发生),我需要交叉检查并匹配 Zxing 角与 Android Vision 角。
我想要的是根据方向填充数组“Barcode.cornerPoints”。
举例说明:
cornerPoints[0] = //First corner-point with an orientation square
cornerPoints[1] = //Second corner-point with an orientation square
cornerPoints[2] = //Third corner-point with an orientation square
cornerPoints[3] = //The corner-point that does not contain a orientation square
一段时间以来,我一直在尝试找到解决此问题的巧妙方法,但我想不出任何好的解决方案,而且它并没有出现,因为谷歌已经开源了填充时使用的代码qrCorners 数组所以我不能扩展它...
有什么帮助吗?我不是唯一一个一直在寻找解决这个问题的人:
最佳答案
我也遇到了类似的情况。可能对您有所帮助的是,Android Vision 不会返回 corner points in a completely random order。 .
我相信检测器会从画面的左上角到右下角扫描图像。图像中首先检测到的 QR 码角将作为角 0 返回,其余按顺时针方向返回。
真正有用的是,如果 Android Vision 像您所说的那样返回角落,根据方向以“静态”顺序返回。我几乎看不出选择返回角点的方式有任何理由。也许性能更好?对于要读取的 QR 码,必须根据由 QR 码的角确定的特定方向来完成。这意味着 Android Vision 已经确定了方向和角落,但没有将这些信息提供给我们。 也许这可以在未来的更新中添加?
关于android - QR 码的定位角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44249483/