Image processing 零结构元素的腐蚀/扩张图像

Image processing 零结构元素的腐蚀/扩张图像,image-processing,mathematical-morphology,Image Processing,Mathematical Morphology,如果我有一个结构元素看起来像这样(原点在SE的中心): 如果我对二值图像进行腐蚀/膨胀,结果都是0或1。 谁能给我解释一下这个吗?(通过matlab进行检查) 非常感谢。您的SE非常有效。它是一个平面正方形,被普遍接受,在每个图像处理库中都可用 现在,理解平面和非平面结构元素(或结构函数)之间的区别和相似性很重要。相似之处在于,它们在某个邻域上运行。对于元素正方形元素,邻域可以用3x3矩阵表示,其中每个元素都在元素的邻域中(例如,对于菱形SE,它也可以是3x3矩阵,但角点不属于邻域)。在Matl

如果我有一个结构元素看起来像这样(原点在SE的中心):

如果我对二值图像进行腐蚀/膨胀,结果都是0或1。 谁能给我解释一下这个吗?(通过matlab进行检查)

非常感谢。

您的SE非常有效。它是一个平面正方形,被普遍接受,在每个图像处理库中都可用

现在,理解平面和非平面结构元素(或结构函数)之间的区别和相似性很重要。相似之处在于,它们在某个邻域上运行。对于元素正方形元素,邻域可以用3x3矩阵表示,其中每个元素都在元素的邻域中(例如,对于菱形SE,它也可以是3x3矩阵,但角点不属于邻域)。在Matlab中,这种特定的邻域关系用
一(3,3)
或简单的
[11;11;11]
表示。平坦SE和非平坦SE之间的区别是使Matlab中的
strel
函数保持原样的原因。非平坦SE意味着它可以以不同的方式处理邻居,因此它不完全依赖于值0(侵蚀和膨胀的定义稍微修改以处理这种情况)。例如,在Matlab中,正方形SE被正确定义为
strel('arbitral',one(3,3),zero(3,3))
(将
zero(3,3)
指定为第二个参数基本上是一个错误,因为您当时说您没有邻居)。另一方面,一个非平面正方形可以无限的定义,其中一个可以是
strel('arbitral',one(3,3),[-1-1-1-1;-10-1;-1-1-1-1])

总之,您很可能错误地使用了
strel

0  0  0
0  0  0 
0  0  0