微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

分割图像中没有边缘线性梯度的单调区域

如何解决分割图像中没有边缘线性梯度的单调区域

我需要提取图像中强度单调变化的“最大”区域,这样我们就不会检测到任何(或很少)边缘。换句话说,梯度是线性的,二阶导数或多或少是恒定的。

例如,在1中,当我们应用Sobel过滤器得到2时,我对大的中心黑色区域感兴趣。我尝试了各种技术,例如 Active Contour Model 和 Chan Vese Segmentation,后者提供了有希望的结果,如 3 所示。

以下是我重现图像的代码

from skimage import filters
edge_sobel = filters.sobel(img)

from skimage.segmentation import chan_vese
cv = chan_vese(edge_sobel,mu=0.25,lambda1=1,lambda2=1,tol=1e-9,max_iter=90,dt=0.5,init_level_set="checkerboard",extended_output=True)

plt.imshow(np.flipud(img.T),cmap="gray")
plt.show()

plt.imshow(np.flipud(edge_sobel.T),cmap="gray")
plt.show()

plt.imshow(np.flipud(cv[0].T),cmap="gray")
plt.show()

plt.imshow(np.flipud(img.T),cmap="gray")
plt.imshow(np.flipud(cv[0].T),alpha=.2,cmap="Reds")
plt.show()

Grayscale image

Sobel Edges

Chan Vese Segmentation

但是,Chan Vese Segmentation 给出的结果过于激进,而且我在二进制图像左侧缺少大块图像,这些图像本应包含在 Segmentation 中。查看覆盖在原始图像上的红色分割区域。

我还要注意,我想快速完成,以便实时应用。我还要注意的是,Active Contour 模型不太有效,因为我想扩大初始区域而不是收缩它,而且我也不知道每次将初始区域放在哪里。

Monotonous Region Overlaid atop Orignal

你能帮我做一个精确的分割吗?我想分割/过滤掉下图中的整个黑色区域:

Desired segmentation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。