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

python - 将灰度图像分量颜色分为黑色,白色和灰色-LMLPHP

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



黑色边界内总是有一些灰色像素,我无法删除。 (主要关注)


对于那些小的对象,细分之后细节可能会丢失。



当前结果:

python - 将灰度图像分量颜色分为黑色,白色和灰色-LMLPHP

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

预期结果:

python - 将灰度图像分量颜色分为黑色,白色和灰色-LMLPHP

最佳答案

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


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


关于python - 将灰度图像分量颜色分为黑色,白色和灰色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57153819/

10-13 08:23