作为一个宠物项目/学习经验(不,这不是家庭作业),我正在开发软件来识别照片中的条形码。我不是在寻找执行此操作的软件或库 - 相反,我将其用作学习练习,我正在写博客并将其张贴在 Codeplex 上。
I have code that successfully recognizes EAN13 barcodes (which I published on CodePlex) UPC 版本 A/E 应该很快就会跟进。不过,我有两个方面很担心。首先是解码图片中有点模糊或对比度差等的条形码。其次是简单地在更大的图片中找到实际的条形码(现在你必须给我一张只有条形码的照片)。
我有一种直觉,某种形式的 AI 会帮助我解决这个问题。我过去玩过一些遗传算法,很久以前我上过一门关于人工智能的类(class),所以这对我来说并不完全陌生,但我不太确定从哪里开始。
什么类型的算法最适合解决这类问题?有任何关于 AI 繁重工作的推荐读物或代码吗?是的,我想了解正在发生的事情,但我不一定要深入到自己编写各种代码等级别。
最佳答案
我建议搜索条形码具有的属性。我想到的一些是:
- 颜色直方图显示两种不同的颜色大致均匀分布
- 正在做 hough transformation找到许多平行线
- 线条的粗细有两个不同的维度。
其他的?
有了这个,我会把图像分成几 block ,然后用这些特征进行分类,然后结合结果来计算一 block 是否包含条形码的可能性。
对于您的第二个问题(模糊图像),我建议计算 1st order derivative的灰度值,然后检测该空间中线条的边缘。如果图像模糊,导数的最大值会降低,但对于某个模糊因子应该是可检测的。
这对你有帮助吗?
关于c# - 用人工智能识别条形码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3506948/