我正在研究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码在图像上的实际大小相比,我的模板非常小。
有没有一种方法可以在不调整大小的情况下寻找图案/蒙版?有没有其他方法来解决这个问题?
作为一个例子,这里有一个二维码的图像
发布于 2014-06-10 18:09:31
您不需要使用xcorr2
。您应该使用扫描线在1d中寻找1:1:3:1:1 (暗-亮-暗-亮-暗的宽度)的图案。
the standard的第60页对参考检测算法进行了说明。
此外,ZXing是一个实现二维码检测/识别的开源库。您可以查看他们的代码以供参考。
编辑:在每条扫描线上,对随后的深色和浅色像素进行计数。您将获得表示序列长度的整数列表。
然后从最大的暗子序列开始,看看它的侧面。如果暗子序列长度为300,则其相邻的亮子序列的长度应为50-150,其相邻的暗子序列的长度也应为50-150 (这是由于标准中提出的0.5的公差)。
因此,如果找到这样的序列,则将其标记为大小为300。然后尝试下一个最大的暗子序列,依此类推。
为了清楚起见,上面的方法应该用来找到3个标记的角落。
https://stackoverflow.com/questions/24136345
复制相似问题