为什么使用Imagemagick';s形态学膨胀算法与数学定义不同? 原始图像

为什么使用Imagemagick';s形态学膨胀算法与数学定义不同? 原始图像,imagemagick,image-morphology,mathematical-morphology,dilation,Imagemagick,Image Morphology,Mathematical Morphology,Dilation,生成人: $ convert -size 3x3 xc:black -fill white -draw 'point 1,1' origin.png 膨胀过程 使用2x1矩形作为中心点(0,0)的核心: 处理人: $ convert origin.png -morphology Dilate Rectangle:2x1+0+0 output.png 预期产量 实际产量 问题 为什么输出是意外的?我想知道ImageMagick是如何处理膨胀的 以下是我的理解: 当内核的中心点迭代到原始图

生成人:

$ convert -size 3x3 xc:black -fill white -draw 'point 1,1' origin.png
膨胀过程 使用2x1矩形作为中心点(0,0)的核心:

处理人:

$ convert origin.png -morphology Dilate Rectangle:2x1+0+0 output.png
预期产量

实际产量

问题 为什么输出是意外的?我想知道ImageMagick是如何处理膨胀的

以下是我的理解:

当内核的中心点迭代到原始图像的位置(0,1)时:

我认为(0,1)在AND操作之后应该是
1

2x1内核的“中心点”在像素之间。因此,你必须选择哪一个是官方的“原产地”。这是武断的。但是在定义内核时,可以在ImageMagick中设置原点。看

例如,对于2x1内核,它可以是

2x1+0+0: 0,1

or

2x1+1+0: 0,1


因为你没有回答问题而投了反对票。
@Jian Weihang
你很严厉,但至少诚实到可以在上面签名。谢谢你。这个问题无关紧要,因为ImageMagick有一个方法可以按照您想要的方式设置它。谁能说出为什么其他工具选择其他默认值,或者哪种可能是正确的。正如我所说,这是一个武断的选择。
0 0 0
1 1 0
0 0 0
0 0 0
0 1 1
0 0 0
2x1+0+0: 0,1

or

2x1+1+0: 0,1