3

问题描述:

在 imagemagick 中,使用 compare 比较两个图像非常容易,它使用 diff 数据生成与被比较的两个图像大小相同的图像。我想使用差异数据并从原始图像中裁剪该部分,同时通过用 alpha 填充其余空间来保持图像大小

我正在采取的方法:

我现在正在尝试计算差异的边界框,但没有运气。例如,下面是我用来生成差异图像的脚本,见下文。现在,我需要找到图像红色部分的边界框。边界框也在下面演示。请注意,图像中的数字是任意的,而不是我正在寻找的实际值。

compare -density 300 -metric AE -fuzz 10% ${image} ${otherImage} -compose src ${OUTPUT_DIR}/diff${i}-${j}.png

在此处输入图像描述 在此处输入图像描述

4

1 回答 1

3

你很久以前问过 - 我今天才发现这个问题。由于我认为答案可能仍然令人感兴趣,因此我提出以下建议。

convert 的 trim 选项会删除与角像素颜色相同的任何边缘。图像的页面或虚拟画布信息被保留。因此,如果你运行

convert -trim edPdf.png - | identify -

它给你:

PNG 157x146 512x406+144+32 8-bit PseudoClass 2c 1.08KB 0.000u 0:00.000

您要查找的值是 (144,228),后者是 406-146-32,因为您查找的是左下角,而 (+144+32) 给出了左上角。

于 2014-02-03T15:46:22.070 回答