0

原始图像

0 0 0
0 1 0
0 0 0

生成者:

$ 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

预期产出

0 0 0
1 1 0
0 0 0

实际输出

0 0 0
0 1 1
0 0 0

问题

为什么输出出乎意料?我想知道 ImageMagick 如何处理膨胀。

以下是我的理解:

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

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

4

1 回答 1

-1

2x1 内核的“中心点”位于像素之间。所以你要选择哪一个是官方的“出身”。这是任意的。但是你可以在定义内核时在 ImageMagick 中设置原点。见https://imagemagick.org/Usage/morphology/#user

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

2x1+0+0: 0,1

or

2x1+1+0: 0,1


于 2019-11-21T22:34:51.820 回答