c# - 如何获取Windows UWP ClaimedBarcodeScanner识别的二维码的像素坐标
问题描述
我正在构建一个 Windows UWP 应用程序,其中包括一个 QR 码扫描仪,该扫描仪基于运行该应用程序的设备的内置摄像头。有一个示例解释了如何在 GitHub 上执行此操作。
到目前为止,我的扫描仪运行正常,并且能够提取 QR 码中包含的信息。该示例很好地解释了如何做到这一点。
但是,作为下一步,我希望能够在识别的 QR 码周围绘制一个形状。为此,我需要获取已识别二维码的像素坐标。
如果识别出 QR 码,则触发ClaimedBarcodeScanner.DataReceived
该事件。然后回调接收一个 BarcodeScannerDataReceivedEventArgs,它包含一个BarcodeScannerReport对象。该对象具有三个属性ScanData、ScanDataLabel和ScanDataType。
我怀疑坐标可能存储在ScanData
属性中,但这本质上是原始数据的垃圾,文档和示例代码都没有解释数据以什么格式存储在该属性中。
有一个 GitHub问题打开,要求在文档中进行澄清,但该问题已在大约 10 个月前打开,并且没有发生任何事情。
有谁知道条形码扫描仪是否显示像素坐标,如果是,如何访问这些坐标?
解决方案
但是,作为下一步,我希望能够在识别的 QR 码周围绘制一个形状。为此,我需要获取已识别二维码的像素坐标。
您可以获得ScanData
(完整的原始条形码数据)BarcodeScannerDataReceivedEventArgs
。并且它包含用于在 QR 码出现失真时校正单元中的中心坐标的Timing Pattern 。这些数据是安全的。
您的要求是在识别的二维码周围画一个形状,也就是说,您要实现二维码图像识别功能。Timing Pattern只记录二维码中每个单元格的中心坐标,不能用于识别预览中二维码边缘的坐标。
目前,UWP 还没有提供这样的 api,用于在识别的 QR 码周围绘制形状。如果您确实需要此功能,请随时在UserVoice上发布您的要求
推荐阅读
- openstreetmap - 如何计算一个节点出现的总次数是一种方式的集合?
- c# - C#:我的应用程序是否可以共享在我的其他类之一中触发的事件?
- typescript - 提取自己的类属性/成员类型
- sql - Oracle - 缺少左括号
- android - 如何通过BluetoothGatt在两部Android手机中相互通信
- upc - 如何解决 UPC 运行时错误:共享内存不足
- google-cloud-platform - Neo4j 本地与云的性能差异
- javascript - 单击按钮以删除自身及其父 div
- scala - Spark 流存储方法仅适用于 Duration 窗口,但不适用于自定义接收器中的 foreachRDD 工作流
- google-cloud-firestore - Firestore 安全规则限制写入设置和更新的字段?