【问题标题】:Nutrition Facts Detection with OpenCV使用 OpenCV 进行营养成分检测
【发布时间】:2015-02-19 17:17:44
【问题描述】:

我想使用 Android 应用程序和 OpenCV 检测食品包装上的一些营养成分。 到目前为止,我设法用一张营养表的图片来做到这一点,但当然它只适用于这张。

目标是检测和检索 100 克产品的能量、蛋白质和糖类的值。这些信息几乎出现在每张桌子上,这就是为什么我现在只关注它们。

所以我想知道是否有这样做的好方法?目前,我尝试检测每一个文本块,用Tesseract识别,如果符合我要找的词,就得到图片中对应的列和行,最终得到我想要的值。

有没有办法直接跟踪单词,并获得最适合图像的值(就与“100g”列的对齐而言)。

典型图片:hpics.li/4231f79

对不起,如果我的问题没有得到很好的解释,请问是否有不清楚的地方或者如果你想让我解释更多我目前所做的事情.. 也对不起我的英语

干杯

【问题讨论】:

  • 你能告诉我们你使用的图像吗?如果您的方法适用于该特定图像,为什么它不适用于其他图像?
  • 我希望我可以上传一张图片,但我没有足够的声望点..
  • 它仅适用于此图像,因为我应用于图像的过程(轮廓查找,尺寸标准),但当应用于其他图像时,不再起作用。我正在寻找一种“跟踪”方法,可以自动查找这些单词。现在,我必须测试和分析二值化图像的每个“斑点”......
  • @zedv 这是一个示例图像hpics.li/4231f79

标签: android opencv


【解决方案1】:

只是一些想法:
1. 将图像转换为 HSV 颜色空间并仅查找黑白区域(使用 inRange 函数)。仅包含这 2 种颜色的 Blob 可能是您的信息(但不幸的是还有其他一些东西 - 条形码,可能是一些绘图或徽标)。
2 你的区域应该是矩形,所以如果 blob 不是矩形 - 丢弃它。
3. 如果创建的矩形被旋转,使用 affineTransform 函数将其垂直对齐 - here 我已经解释了如何做到这一点。请注意,矩形的宽度和高度应保持不变。
4. 使用仿射变换后,您的矩形可能会旋转 90、180 或 270 度。在您在顶部提供的示例中,有一个黑色区域 - 对于所有图像来说都是如此,而不是找到顶部非常容易 - 只需在您的区域内找到黑色矩形。在其他情况下,找到顶部可能更难 - 一个可能值得测试的快速想法是在每个白色矩形中查找黑色像素。在大多数情况下,对齐到中心(对我们来说不是有趣的情况)或向左对齐 - 如果你发现矩形的左侧,找到顶部是显而易见的 :) 或者你可以寻找总是在右侧的字符 - @987654322 @、gmg

如果您有任何问题,请给我们更多示例并描述您已经完成的工作 - 知道很难说更多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 2012-02-28
    • 2012-12-08
    相关资源
    最近更新 更多