我正在研究一种基于分水岭的分割算法来分割荧光图像,例如:
因此,我获得了一个Numpy数组,每个片段都有标签。如果荧光图像中的相应区域之间有足够大的强度衰减,则这些区域由分水岭线分隔。对于非常大的强度衰减,它们通过简单的阈值完全分离。上图的结果如下:
我的算法在绝大多数情况下都表现良好。然而,它有时有一个轻微的倾向,以超期。如上图所示:
由于这些情况很难通过进一步研究基于强度的分割本身来改善(我冒着破坏其他东西的风险),因此我希望根据它们之间的分水岭线的长度以及上面和下面两个分段的平均最大宽度,有选择地合并相邻分段。 我知道在逐像素的基础上我必须做什么:
因为在Python中,在单个像素上迭代通常很慢,所以我不确定如何为此编写性能代码。因此,我正在寻找关于如何使用Numpy和Skimage实现这一点的建议(OpenCV也是一个选项)
你没有提供你是如何得到你最初的部分。尽管如此,我认为改进流域线可以解决您的问题,这可以在流域层次结构框架中通过Higra包实现
我通过图像补码指定分水岭的初始顺序,并使用另一个属性(体积)重新计算其分水岭线
您描述的强度下降和面积是体积属性,您可以通过层次中的阈值来控制分割
这是一个工作示例:
这就是结果
相关问题 更多 >
编程相关推荐