如何找到灰色块?

时间:2018-04-11 20:22:00

标签: opencv image-processing

我有一个包含不同块的图像,没有相邻/触摸块具有相同的灰度值。我希望在OpenCV中找到这些块的边界矩形。我使用过ConnectedComponents,它在倒置时提供8个标签,在非倒置图像上提供2个标签。轮廓功能也没有给出任何合理的答案。任何帮助,将不胜感激。 The image of the gray blocks

图像看起来像这样,并添加了红色边框以显示其范围。

enter image description here

1 个答案:

答案 0 :(得分:0)

你的问题不够明确;据我所知,马克的评论是正确的。用非常简单的话说:

如果所有块的值都在0到255之间,则可以迭代以下255次(BlockColor的不同值):

  1. Say BlockColor = 100,
  2. 在图像中,阈值所有值为0; if(imagePixel == BlockColor),将这些像素设为255。
  3. 这将生成一个背景为0且前景为255的二进制图像。(只有原始图像中值为100的块才是前景)。
  4. (重新)初始化current_contour = all 0s image;
  5. 查找轮廓。将它们存储在current_contour(BlockColor)中。
  6. 增加BlockColor的值并重复。