Python 计算带噪波栅格图像中的着色和未着色矩形

Python 计算带噪波栅格图像中的着色和未着色矩形,python,opencv,image-processing,object-detection,Python,Opencv,Image Processing,Object Detection,我正在尝试使用python计算这个网格中所有着色和未着色的矩形。我在OpenCV中尝试了轮廓检测,但未能实现。我还尝试了hough线变换并检测到了图像中的线,但我不知道如何进一步进行。有更好的方法吗?有人能建议一种方法吗 由于您的图像看起来非常干净,我会 阈值图像选择白色区域:灰色区域和黑线将为黑色 使用findContours()计算白色斑点的数量 执行另一个阈值以选择黑线。只有黑线是黑色的,其他的都是白色的 对两幅图像进行异或运算:这样你应该得到灰色区域 使用findContours()计

我正在尝试使用python计算这个网格中所有着色和未着色的矩形。我在OpenCV中尝试了轮廓检测,但未能实现。我还尝试了hough线变换并检测到了图像中的线,但我不知道如何进一步进行。有更好的方法吗?有人能建议一种方法吗


由于您的图像看起来非常干净,我会

  • 阈值图像选择白色区域:灰色区域和黑线将为黑色
  • 使用findContours()计算白色斑点的数量
  • 执行另一个阈值以选择黑线。只有黑线是黑色的,其他的都是白色的
  • 对两幅图像进行异或运算:这样你应该得到灰色区域
  • 使用findContours()计算灰色斑点的数量
编辑: 椭圆切割一些矩形,这将影响您的计数。如果要删除它,阈值是不够的(椭圆和矩形线都是黑色的)。一种可能的方法是:

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

呃,那里也有一个椭圆——那是干什么用的?