用Python实现分水岭变换获取脊线骨架

用Python实现分水岭变换获取脊线骨架,python,opencv,scikit-image,watershed,image-morphology,Python,Opencv,Scikit Image,Watershed,Image Morphology,我目前正在尝试将一段最初用IDL编写的代码翻译成Python,并且完全停留在代码的某个部分,该部分使用IDL中的函数获取图像的“脊骨架”(代码的原始编写者称之为脊骨架)。请参见下面输入和结果的示例图像 输入图像 结果 生成此命令的IDL代码行读取 result = watershed(image, connect=8) 不幸的是,我对使用分水岭等一无所知,但从我对OpenCV或scikit图像的了解来看,您需要调用的不仅仅是图像本身?例如,我看到有人提到标记之类的东西。我猜测的connec

我目前正在尝试将一段最初用IDL编写的代码翻译成Python,并且完全停留在代码的某个部分,该部分使用IDL中的函数获取图像的“脊骨架”(代码的原始编写者称之为脊骨架)。请参见下面输入和结果的示例图像

输入图像

结果

生成此命令的IDL代码行读取

result = watershed(image, connect=8)
不幸的是,我对使用分水岭等一无所知,但从我对OpenCV或scikit图像的了解来看,您需要调用的不仅仅是图像本身?例如,我看到有人提到标记之类的东西。我猜测的
connect=8
部分与最近邻相关,但我不知道如何在我遇到的任何Python包中实现这一点


我似乎无法复制IDL给出的结果,所以我希望比我更专业的人能够认识到这种结果,并能为我指明正确的方向?谢谢。

这似乎是一个正常的分水岭。分水岭围绕图像中的每个局部最小值创建一个区域。遗憾的是,唯一的基于标记的分水岭。你必须找到局部极小值并用它们作为标记。