Opencv 4 Android检测盒

时间:2016-01-28 14:17:36

标签: android opencv detect rectangles box

我正在开发一款Android应用,可以从商店货架图片中识别货架上的所有包装盒(产品)。

到目前为止,我的方法如下:

  1. 灰度
  2. 双边滤波器(或GaussianBlur,但我发现使用双边滤波器可以更好地保留边缘)
  3. 自适应阈值
  4. 扩张(不知道是否有必要)
  5. 精明
  6. findContours
  7. 因此,如果源图像很简单,(如b / w绘图的架子和一些盒子)它可以检测到它们,但是对于架子的真实图像,它不起作用。

    主要问题是单个盒子有不同的前景"颜色和徽标,我的步骤也检测"内部"的所有边缘。盒子(即盒子边缘内的颜色)并给我完全的nosense结果。 为简单起见,我将在下面显示我的中间结果和源图像:

    1)源 source image

    2)灰度 grayscaled image

    3)双边滤波(在这种情况下是高斯布鲁尔) bilateral

    4)自适应阈值 adaptive thresh

    5)扩张 dilation

    6)精明 Canny

    正如您所看到的,因为我无法删除每个框的前景,所以徽标或文本给出的所有边缘都会起作用并且会产生结果。

    我该如何克服这个问题?

    我的想法是试图"删除"或者对内盒进行褪色,但我不知道怎么做! 谢谢大家!

0 个答案:

没有答案