计算带有噪声的网格图像中的带阴影和无阴影的矩形

时间:2018-02-21 18:27:50

标签: python opencv image-processing object-detection

我正在尝试使用python计算此网格中的所有阴影和非阴影矩形。我在OpenCV中尝试过轮廓检测并且无法实现这一点。我也尝试了霍夫线变换并检测到图像中的线条,但我无法弄清楚如何继续进行。有没有更好的方法呢?有人可以提出一种方法吗?

recognize_image

1 个答案:

答案 0 :(得分:1)

由于你的图像非常干净,我会

  • 阈值图像选择白色区域:灰色区域和黑色线条将为黑色
  • 使用findContours()计算白色斑点
  • 选择另一个阈值来选择黑线。只有黑色线条会变成黑色,其他一切都会变成白色
  • XOR两张图片:这样你应该有灰色区域
  • 使用findContours()计算灰色斑点

编辑: 椭圆会切割一些矩形,这会影响您的计数。如果要删除它,阈值不够(椭圆和矩形线都是黑色)。一种可行的方法:

  • 使用Hough Lines,您可以检测线条,
  • 在新图像中绘制垂直和水平线(忽略对角线,因为它们可能是椭圆的一部分)
  • 在阈值图像和线条图像之间使用布尔运算(和,xor或or),你应该只能保留线条并删除椭圆