我打算用Open-CV编写程序来计算图像中与下面类似的对象数。
我计划采用的方法是使用直方图来阈值图像,然后使用Blob检测来计算识别出的Blob数量。只要颗粒状物体不相互接触,这就可以正常工作。 (虽然重叠超出范围)我已经研究了使用Watershed分段来识别彼此接触的对象的可能性。
我不清楚的是,如何将这两种技术应用于可能有或没有重叠颗粒的图像。如果图像中至少有一个颗粒相互接触,我是否可以执行这两种技术?如果是这样的话?或者我只执行Watershed,因为在某处会有重叠并且执行Blob检测会导致由于合并的blob导致错误的输出?提前谢谢。
答案 0 :(得分:2)
你说“只要图像中至少有一个重叠的实例”,但“重叠超出了范围”。
如果Watershed算法处理具有重叠粒料的图像,Blob检测可能不会提供任何优势(因为它将合并重叠的对象)。
如果你真的想要结合这些方法,你可以在他们自己的管道中运行它们,并使用概率模型将两者结合起来。但最好从简单开始,看看你先得到什么样的结果。
以下是使用Matlab进行细胞分割的示例:
http://blogs.mathworks.com/steve/2006/06/02/cell-segmentation/
如果您需要避免计算仅部分在视图中的对象,您可以使用Voronoi图并删除与边连接的对象: