将灰度图像分量分割成黑色,白色和灰色

时间:2019-07-22 21:13:45

标签: python image

经过很长时间的尝试,我仍然找不到解决我问题的合适方法。问题是将灰度图像分为3种不同的颜色:镜框应为黑色,镜框的内部空间应为白色,所有其他介质应为黑色。

enter image description here

我尝试了几种不同的方法,包括纯正强度分割和其他一些形态分割。但是我遇到的两个主要问题是:

    1. 黑色边界内总是有一些灰色像素,我无法删除。 (主要关注)
    1. 对于那些小的对象,细分后细节可能会丢失。

当前结果:

enter image description here

预期的输出应具有三种不同颜色的清晰边框,至少不应该在黑色边框内具有灰色线条。我的意思是说,在黑色的书房里,它被打成全白色,没有任何灰色。有点像我创建的这张图片,它们的结构不完全相同,但是请注意它的清洁程度,我想要的是这种清洁和准确的贴图。

预期结果:

enter image description here

2 个答案:

答案 0 :(得分:0)

您需要应用一些区域填充效果。有两个可以为您带来很多好处,尤其是因为您善于发现黑色边界。确定您要做的事情。您还需要替换没有内部的任何小的(根据您的定义)黑色区域,将其变为灰色(目前;可能会更改)。

  1. 找到每个区域的内部和外部外壳(已知算法)。里面的所有东西都变白了。外面的一切都变成灰色。
  2. 在所有区域中应用“影响抖动”:将每个像素替换为其直接相邻像素的均值;黑色像素不参与。重复平均操作,直到每个区域都稳定在白色或灰色值附近。然后将整个区域驱动到该值。

答案 1 :(得分:0)

因此,如您在此图像中所见,已删除了镜框内的灰线,但介质中添加了更多白点。flood-filled image