0

我打算使用 Open-CV 编写一个程序来计算类似于下图的图像中对象的数量。

示例图像

我计划采用的方法是使用直方图对图像进行阈值处理,然后使用 Blob 检测来计算识别的 Blob 数量。只要颗粒状物体不相互接触,这将正常工作。(虽然重叠超出了范围)我研究了使用分水岭分割来识别相互接触的对象的可能性。

我不清楚的是,如何将这两种技术应用于可能有或没有重叠颗粒的图像。如果图像中至少有一个颗粒相互接触,我是否要同时执行这两种技术?如果有,按什么顺序?还是我只执行分水岭,因为某处会重叠,并且执行 Blob 检测会由于合并的 blob 而导致错误的输出?提前致谢。

4

1 回答 1

2

您说“只要图像中至少有一个重叠实例”,但也说“重叠超出范围”。

如果分水岭算法处理具有重叠颗粒的图像,则斑点检测可能不会提供任何优势(因为它将合并重叠对象)。

如果你真的想组合这些方法,你可以在它们自己的管道中运行它们,并使用概率模型将两者结合起来。但是最好从简单的开始,看看你首先会得到什么样的结果。

这是一个使用 Matlab 的示例,它使用 Watershed 执行细胞分割:

http://blogs.mathworks.com/steve/2006/06/02/cell-segmentation/

如果您需要避免计算仅部分可见的对象,您可以使用 Voronoi 图并删除与边缘连接的对象:

http://pythonvision.org/basic-tutorial

于 2012-05-11T06:23:19.347 回答