我正在处理QR检测器代码,需要在图像上找到“查找模式”(FP)。我创建了一个二进制模板,类似于您在QR码角上找到的正方形,如下所示:
FP = ones(9);
FP(2:8,2:8)=0;
FP(3:7,3:7)=1;
FP(4:6,4:6)=0;
figure;imshow(FP)
我尝试使用来寻找与此模板具有最大相关性的图像中的点xcorr2
。我的问题很明显:与QR码在图像上的实际尺寸相比,我的模板很小。
有没有寻找图案/遮罩而无需调整大小的方法?是否有解决此问题的另一种方法?
例如,这是带有QR码的图片
您无需使用xcorr2
。您应该使用扫描线在1d中寻找1:1:3:1:1(暗光-暗光-暗-暗宽度)模式。
在标准的第60页中描述了参考检测算法。
另外,ZXing是一个开源库,可实现QR码检测/识别。您可以查看他们的代码以供参考。
编辑:在每条扫描线上,计算随后的暗像素和随后的亮像素。您将获得代表序列长度的整数列表。
然后从最大的深色子序列开始,并观察其侧面。如果暗子序列的长度为300,则其相邻的亮子序列的长度应为50-150,并且其相邻的暗子序列的长度也应为50-150(这是由于标准中建议的容差为0.5)。 。
因此,如果找到这样的序列,则将其标记为300。然后尝试下一个最大的深色子序列,依此类推。
为了清楚起见,应使用上述方法找到3个标记的角。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句