Matlab sobel边缘检测的预处理方法

Matlab sobel边缘检测的预处理方法,matlab,image-processing,edge-detection,imagefilter,Matlab,Image Processing,Edge Detection,Imagefilter,我目前正在用Matlab编写一个基于距离变换和分水岭线的分割算法来分析我的数据(细胞显微镜,原始图像见图1)。分离细胞的部分工作得很好,但我在算法的第一部分遇到了麻烦:预处理和边缘检测部分 链接至图像: 事实上,我的分割是基于亮场图像,自然轮廓非常突出,但由于来自细胞核的一些噪声照明,当我应用边缘检测方法(Sobel滤波器)时,一些细胞的轮廓经常被截断。例如,在图像2中检测到的边缘导致良好的分割(图像3),但下一帧可能具有相同的单元,具有内部照明,从而导致不良边缘检测(图像4),从而导致不良分割

我目前正在用Matlab编写一个基于距离变换和分水岭线的分割算法来分析我的数据(细胞显微镜,原始图像见图1)。分离细胞的部分工作得很好,但我在算法的第一部分遇到了麻烦:预处理和边缘检测部分

链接至图像:

事实上,我的分割是基于亮场图像,自然轮廓非常突出,但由于来自细胞核的一些噪声照明,当我应用边缘检测方法(Sobel滤波器)时,一些细胞的轮廓经常被截断。例如,在图像2中检测到的边缘导致良好的分割(图像3),但下一帧可能具有相同的单元,具有内部照明,从而导致不良边缘检测(图像4),从而导致不良分割(图像5)

我想找到一种更敏感的边缘检测方法,或者一种可以降低细胞内部照明重要性的方法。由于我远未成为图像处理算法方面的专家,我不知道我想要的东西是否简单易得,或者我是否需要考虑其他策略

非常感谢您的时间和建议。

您也可以在Matlab的edge方法中使用不同的设置和阈值。 不久前我也遇到了同样的问题,通过选择“对数”方法(高斯拉普拉斯方法)解决了这个问题

您可以从坚持Sobel方法并更改阈值开始 (详情请参阅),然后继续尝试其他方法,看看它们是否比sobel更适合您。 我还将检查matlab的边界跟踪函数(),可能启用了noholes(我认为这将消除作为额外对象出现的nucleus区域,并扰乱分割)。
希望这有点帮助。:D

也许你可以看看凹度(比如周长和面积的比率)来标记部分轮廓,并对它们做额外的工作(不考虑好的轮廓)。感谢您的评论。这是一个很好的建议,但我想在做一些巨大的任务作为轮廓推断之前,尽最大努力检测图像中可用的最佳轮廓。非常感谢您的详细回复。我尝试了不同的边缘检测,参数范围很大,但结果几乎相同。尽管如此,随着新的预处理步骤,如初始图像的中值减法,我得到了一些改进。因此,我确信关键在于预处理步骤,但我还没有找到这些步骤的良好组合。。。。