Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 如何在单个图像上执行分水岭分割和水滴分析?_Image Processing_Opencv_Pattern Matching_Computer Vision_Watershed - Fatal编程技术网

Image processing 如何在单个图像上执行分水岭分割和水滴分析?

Image processing 如何在单个图像上执行分水岭分割和水滴分析?,image-processing,opencv,pattern-matching,computer-vision,watershed,Image Processing,Opencv,Pattern Matching,Computer Vision,Watershed,我计划编写一个程序,使用OpenCV来计算图像中的对象数量,类似于下面的图像 我计划采用的方法是使用直方图对图像进行阈值设置,然后使用斑点检测来计算识别出的斑点数量。只要小球状物体彼此不接触,这种方法就行。(重叠超出了范围)我研究了使用分水岭分割来识别相互接触的对象的可能性 我不清楚的是,如何将这两种技术应用于可能有或可能没有重叠颗粒的图像。如果图像中至少有一个小球相互接触的实例,我是否要执行这两种技术?如果是,按什么顺序?或者我只执行分水岭,因为在某个地方会有重叠,执行Blob检测会由于合并

我计划编写一个程序,使用OpenCV来计算图像中的对象数量,类似于下面的图像

我计划采用的方法是使用直方图对图像进行阈值设置,然后使用斑点检测来计算识别出的斑点数量。只要小球状物体彼此不接触,这种方法就行。(重叠超出了范围)我研究了使用分水岭分割来识别相互接触的对象的可能性

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

您说“如果图像中至少有一个重叠实例”,但也可以说“重叠超出范围”

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

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

下面是一个使用Matlab的示例,它使用分水岭执行单元分割:

如果需要避免计算仅部分显示在视图中的对象,可以使用Voronoi图并删除与边连接的对象:


您尝试过更简单的方法吗?检查,检查,和。谢谢。这些技术看起来确实很有趣。我来看看。只是好奇;在小球变得不那么圆或完全不成形的情况下,使用HoughCircles的任何方法都有效吗?非常感谢。对不起,我的意思是至少有一个小球相互接触的例子。。。