二值图像上的侵蚀会减少白色区域,而膨胀会增加白色区域。我使用OpenCV在彩色图像上尝试了相同的效果,并得到了类似的结果。我尝试在二进制jpeg图像上进行侵蚀/扩张。由于有损压缩,图像的强度在[0,5]和[250,255]。我发现的结果很有趣。侵蚀使图像在结构元素中搜索最小值并替换它。膨胀使用最大值。
在彩色图像的情况下,颜色如何被认为更小或更大?他们间接地将值转换为灰色,看强度然后决定哪个更大?或者他们使用三种颜色的平均值?第三种可能性是它们在所有三种颜色(R,G,B)上分别侵蚀/扩张。使用了哪一种方法?
答案 0 :(得分:2)
这些形态操作不容易为彩色图像定义,因为颜色传达矢量信息(三个分量),不能比较小/大。
常见的实现只是独立地着色颜色平面。这样做的缺点是没有良好的数学证明,并且引入了原始图像中不存在的颜色。
另一种选择是可能的,但似乎没有使用,似乎:如果您选择一种颜色,您可以通过选择与所选像素最接近/最远的像素的颜色来扩张/侵蚀。
答案 1 :(得分:1)
R,G和B通道中的每一个都是单独处理的。
来自manual(强调我的):
该函数使用指定的结构扩展源图像 确定像素邻域形状的元素 最大值是...... 功能支持就地模式。扩张可以应用几种( 迭代次数。 对于多通道图像,每个通道都是 独立处理。