为什么使用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