如果没有实施openCV或调用QR码的识别API,是否有任何快速可靠的算法来确定图像中QR码的存在?
这个问题的目的是改善扫描QR码的用户体验。当QR码识别失败时,程序需要知道是否确实存在QR码才能扫描并再次识别QR码,或者没有任何QR码,以便程序可以调用其他程序。
为了回应某些响应,检测程序不需要100%准确,但以合理的概率返回准确的结果。如果我们可以在这里使用openCV,将很容易实现傅里叶变换来检测图像中是否存在明显的高频率,这是QR存在的良好信号。但openCV的集成将大大增加我的程序的大小,我想避免。
答案 0 :(得分:2)
您希望向用户提供反馈非常棒。提供指示用户在查找QR码时“变暖”的图形可以使查找和读取代码的过程更快更顺畅。
看起来您已经有了答案,但为了提供更强大的解决方案和/或有选项,您可以尝试以下一项或多项:
如果你有图像金字塔的内存,那么使用降低分辨率的图像可能是有利的,因为你可以很快地尝试一些测试。
就用户交互而言,您可能还会在预处理过程中多次更新“这可能是QR码”图形,并指示逐渐更强/更绿的图形(或任何适合的颜色)的置信度当地文化)。例如,如果纹理块有大约60%的机会成为QR码,则可能会显示带有虚线边框的细黄绿色矩形。对于80%-90%的可能性,您可能会显示更饱和的绿色实心矩形。如果你可以每隔100到200毫秒更新一次图形,那么用户就会知道某些动作,例如移动智能手机有助于或伤害它。
答案 1 :(得分:1)
1)将图像转换为灰度 2)将图像分成n×m的单元,比如3×3。该程序旨在保证至少一个单元将被可能的QR码完全覆盖(如果有的话) 3)对所有单元实施2D傅里叶变换。如果在任何单元格中,X轴和Y轴的高频区域都有一个非常大的值,则存在QR码的可能性很高
我正在解决概率问题,而不是100%准确的检测。在该算法中,棋盘也将被检测为QR码。