困难环境中的条码本地化

信息处理 图像处理 过滤器 计算机视觉 算法 图像分割
2022-02-13 02:54:58

我正在创建一个用于本地化条形码类型的程序。(我知道存在很多,这不是问题:))我暂时专注于一维条形码。

我遇到的困难是,我需要能够定位的条形码可能位于具有其他信息(文本/图像/...)、不均匀照明条件(-> 渐变)的图像中的任何位置,并且条形码可以缩放和以任何方式定位。

[编辑] 然而,与大多数条码相关的案例不同,我的应用程序不需要在智能手机上运行,​​因此可以让自己有一些处理带宽

我一直在尽可能多地研究书籍和出版物,但认为是时候请教专家了……

在困难环境中可靠地定位一维条码的最合适方法是什么?

目前,我正在应用 otsu 阈值、基本边缘检测和霍夫变换。我目前面临的问题:
- otsu 阈值是全局的,不能很好地处理大图像上的局部梯度。是否存在本地化算法?
- hough 定位条形码的行,还定位其他项目(特别是文本),并且很难仅过滤条形码(阈值行中的最小像素数会抛出很多,但也会抛出较小的条形码)

谁能指出我正确的方向?

我想知道傅立叶和 Gabor 滤波器,但它们似乎更复杂,所以在我开始之前想要意见。

PS:我在 Octave 和 Java 中做所有事情

1个回答

除了商业条形码读取算法(其中许多无法读取具有挑战性的代码)之外,我想指导您阅读这篇论文,这是我认为该领域最好的学术著作之一:

加洛,曼杜奇:用相机读取具有挑战性的条码

这是一个更新的版本:

Gallo, Manduchi:使用可变形模板通过手机读取一维条码

从他们展示的性能来看,它可以解码真正变形和低质量的条形码。

在定位阶段之后,您将需要一个强大且快速的解码算法。这是 Simsekli 和 Birdal 的一种非常强大的算法:

Simsekli,Birdal:线性条码稳健解码的统一概率框架