c++ - 二维码生成算法数据屏蔽实现案例分析

标签 c++ algorithm qr-code

我正在实现一个 QR 码生成算法,如 thonky.com 中所述我正在尝试了解其中一种情况:

this page 所述,在得到整个代码中暗模块的百分比后,我应该取最接近的两个五的倍数(例如 455048% ),但如果百分比是 5 的倍数呢?例如 45.0?应该取什么数字? 45? 40 和 50? 45 和 40? 45 岁和 50 岁?完全不同的东西?我在任何地方都找不到任何答案......

非常感谢您的帮助!

最佳答案

事实上,Thonky 教程在这方面并不清楚,所以让我们转向官方标准(在 ISO 的付费专区后面,但 easy to find online)。第 8.8.2 节,第 52 页,表 24:

Evaluation condition: 50 ± (5 × k)% to 50 ± (5 × (k + 1))%
Points: N₄ × k

这里,N₄ = 10,并且

k is the rating of the deviation of the proportion of dark modules in the symbol from 50% in steps of 5%.

因此对于恰好 45% 的深色模块,您的 k = 1,导致 10 分的惩罚。

另请注意,如果您弄错了,这并不重要。因为掩码模式标识符是在格式字符串中编码的,所以即使您不小心选择了稍微次优的掩码模式,阅读器仍然可以解码 QR 码。

关于c++ - 二维码生成算法数据屏蔽实现案例分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57345979/

相关文章:

algorithm - 从列表重建一棵树,深度信息封装在列表的条目中

swift - 将 UIImage 转换为 CIImage 时,UIImage 的 QR 码检测失败

ruby-on-rails - Rails API 创建二维码并将图像存储在 active_storage 中

authentication - 手机网站微信登录

algorithm - 对数大 O 与平方根

c++ - 如何将变量放入更高地址空间(64位)进行测试

c++ - C++ 对象成员数组的默认初始化?

c++ - C++中的基本类设计,处理相互依赖的类

c++ - 通过调用 transform 方法对齐持有不同类型的两个容器

regex - Stream 或 Iterator 生成匹配正则表达式的所有字符串?