alv*_*rna 8 matlab qr-code image-processing
我正在研究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)
Run Code Online (Sandbox Code Playgroud)
我尝试使用与该模板最大相关性来查找图像中的点xcorr2.我的问题很明显:与QR码可能在图像上的实际尺寸相比,我的模板非常小.
有没有办法寻找图案/面具而不必调整大小?还有另一种解决这个问题的方法吗?
例如,这是带有QR码的图像

Mic*_*vin 11
你不需要使用xcorr2.您应该使用扫描线在1d中寻找1:1:3:1:1(暗光 - 暗 - 暗 - 暗 - 暗的宽度)图案.
标准的第60页上有参考检测算法的描述.
此外,ZXing是一个实现QR码检测/识别的开源库.您可以查看他们的代码以供参考.
编辑:在每条扫描线上,计算后续的暗色和后续亮像素.您将获得表示序列长度的整数列表.
然后从最大的黑暗子序列开始,并看向它的两侧.如果暗子序列长度为300,则其相邻的光子序列长度应为50-150,其相邻的暗子序列长度应为50-150(这是由于标准中提出的0.5的容差). .
因此,如果您找到这样的序列,则将其标记为大小为300.然后您尝试下一个最大的黑暗子序列,依此类推.
只是为了澄清,上面的方法应该用于找到3个标记的角落.