Matlab 如何消除切割图像后边缘边界附近的误差?

Matlab 如何消除切割图像后边缘边界附近的误差?,matlab,image-processing,image-segmentation,edge-detection,smooth,Matlab,Image Processing,Image Segmentation,Edge Detection,Smooth,我正在做一个图像处理项目,它有一个6步算法,我被困在其中之一 首先,我使用的平台是MATLAB,所以如果你能提供一些示例,那就太好了。但如果你不想写代码示例,请给我一些提示、技巧或其他 让我解释一下我的问题。我已经分割了一张.jpg图像,并切下了其中的一些区域。然后使用掩码将结果保存为.png。结果是这样的(黑色部分实际上是透明的,我把它变成黑色是为了更好地看到问题) 正如你在图中看到的,有一些不相关的领域。我需要摆脱这些不相关的领域。因为我希望前景尽可能平滑。乍一看,我将高斯模糊应用于遮罩,

我正在做一个图像处理项目,它有一个6步算法,我被困在其中之一

首先,我使用的平台是MATLAB,所以如果你能提供一些示例,那就太好了。但如果你不想写代码示例,请给我一些提示、技巧或其他

让我解释一下我的问题。我已经分割了一张.jpg图像,并切下了其中的一些区域。然后使用掩码将结果保存为.png。结果是这样的(黑色部分实际上是透明的,我把它变成黑色是为了更好地看到问题)

正如你在图中看到的,有一些不相关的领域。我需要摆脱这些不相关的领域。因为我希望前景尽可能平滑。乍一看,我将高斯模糊应用于遮罩,并再次将图像保存为.png。但结果并不像你想象的那样令人满意。我想这种情况需要比我所尝试过的更坚实的解决方案

编辑1:我用了光谱垫。但这没用。我能得到的最好结果就是这样

正如你所看到的,这张照片的正面有一些问题,底部有很多问题。我想我需要一种边缘固定器或边缘平滑器,用于上面的第一张图像,它应该比抠图更快


任何MATLAB代码示例、技术和方法都将非常有用。如果您需要进一步的解释,请随时询问

你不想只对结果进行“高斯模糊”,你需要的是软分割。作为图像铺垫的第一站,我推荐Levine Rav Acha和Lischinski。您将在那里找到一些Matlab代码(我过去使用过它,结果非常令人印象深刻)。

请解释如何执行分段。你似乎是在用绝对颜色值分割,而忽略了渐变。是的,你部分是对的。它基于节点的颜色相似性。我在最小化吉布斯能量。正如您可能已经知道的,Boykov和Jolly(2001)的图切割算法工作得非常好。但是在最终的结果中,正如您所看到的,只有一些小问题。@Erdi您使用的是4连接栅格图还是8连接栅格图?你可以考虑更高程度的连通性,如Shai或我使用4连通图所建议的那样。在您添加的第一篇文章中,有一些8-n和26-n的示例用法。结果令人印象深刻。确实如此。我认为这将解决我的边缘平滑部分适当。我会试一试。我已经将光谱消光代码集成到我的项目中,但结果显然不是很好。首先,它真的很慢。(对于1000x500图像文件,平均6分钟)。此外,前景的准确性也存在一些问题。大多数情况下,它包括与结果无关的其他部分。正如你们所理解的,这无助于缓解这种情况。还有什么可以应用上面的图片吗。我不知道,也许是一种边缘固定器,边缘平滑器?@Erdiİzgi你可以试试第4节论文中提出的抠图算法。