我和一些同学正在为学校做项目。我们当前问题的简要描述:
我们已经制造了一辆车并配备了Raspberry Pi和相机。当QR码放在相机前面时,我们可以命令相机拍摄照片。通过使用外部Python模块(qr-tools),Raspberry Pi可以自动解码QR码。
当相机只能看到QR码的(小)部分时,解码过程失败(如预期的那样)。我们想知道是否有简单方式来检测图像中的QR码部分。这样,Raspberry Pi可以重新定位车辆,以便可以在相机上捕获整个QR码。
这里的关键字是“简单”。我们还有几天时间来改进我们当前的车辆,这个问题的解决方案将是一个很好的补充功能。
编辑:我错误地链接了错误的模块。
答案 0 :(得分:1)
我将假设您正在尝试识别与摄像机视图边缘重叠的QR码。在这种情况下,你可以检查图像的四个边缘是否有高对比度的区域(在黑色和白色之间交替),如果你发现任何一个,则转向相应的方向。
以下是一个示例,使用random image from Flickr(重复边缘像素):
我建议区分所有四条边的灰度值并计算绝对差值的滚动平均值。具有最高峰值的一方是您最好的选择。
作为参考,这里是我从上面的图像计算的亮度值(以灰色显示),以及在±20像素窗口上平均绝对差值的结果:
如您所见,图像顶部的天窗(或其他任何东西)会出现问题,但前景中的QR码仍会产生最高峰值。