首页 > 解决方案 > 如何获取Windows UWP ClaimedBarcodeScanner识别的二维码的像素坐标

问题描述

我正在构建一个 Windows UWP 应用程序,其中包括一个 QR 码扫描仪,该扫描仪基于运行该应用程序的设备的内置摄像头。有一个示例解释了如何在 GitHub 上执行此操作。

到目前为止,我的扫描仪运行正常,并且能够提取 QR 码中包含的信息。该示例很好地解释了如何做到这一点。

但是,作为下一步,我希望能够在识别的 QR 码周围绘制一个形状。为此,我需要获取已识别二维码的像素坐标。

如果识别出 QR 码,则触发ClaimedBarcodeScanner.DataReceived该事件。然后回调接收一个 BarcodeScannerDataReceivedEventArgs,它包含一个BarcodeScannerReport对象。该对象具有三个属性ScanDataScanDataLabelScanDataType

我怀疑坐标可能存储在ScanData属性中,但这本质上是原始数据的垃圾,文档和示例代码都没有解释数据以什么格式存储在该属性中。

有一个 GitHub问题打开,要求在文档中进行澄清,但该问题已在大约 10 个月前打开,并且没有发生任何事情。

有谁知道条形码扫描仪是否显示像素坐标,如果是,如何访问这些坐标?

标签: c#uwpqr-codebarcode-scanner

解决方案


但是,作为下一步,我希望能够在识别的 QR 码周围绘制一个形状。为此,我需要获取已识别二维码的像素坐标。

您可以获得ScanData完整的原始条形码数据BarcodeScannerDataReceivedEventArgs。并且它包含用于在 QR 码出现失真时校正单元中的中心坐标的Timing Pattern 。这些数据是安全的。

您的要求是在识别的二维码周围画一个形状,也就是说,您要实现二维码图像识别功能。Timing Pattern只记录二维码中每个单元格的中心坐标,不能用于识别预览中二维码边缘的坐标。

目前,UWP 还没有提供这样的 api,用于在识别的 QR 码周围绘制形状。如果您确实需要此功能,请随时在UserVoice上发布您的要求


推荐阅读