使用ImageMagick强调“Diff”图像

时间:2018-03-28 21:18:42

标签: image-processing imagemagick

跟进“Diff” an image using ImageMagick

当您使用表单(而不是图像)时,使用此技术很难看到更改。我想要显示某些类型的黄色突出显示可能在更改的实际像素周围10-20像素“更大”(填充)。

所以不要只是这个

enter image description here

更像这样的东西

enter image description here

似乎我只是在堆栈中遗漏了一些可以使其工作的东西。

convert '(' file1.png -flatten -grayscale Rec709Luminance ')' \ '(' file2.png -flatten -grayscale Rec709Luminance ')' \ ... here ? ... '(' -clone 0-1 -compose darken -composite ')' \ ... or here ? ... -channel RGB -combine diff.png

我也可以将它作为单独的命令运行,并且不需要很快,大部分都将脱机运行。

我也试过在这里研究这种技术(特别是缩略图缩放如何在像素扩展时为你提供我想要的效果),但是这段代码使用的是库而不是ImageMagick命令行工具。第248行=> “让红色尽可能可见”

https://github.com/vslavik/diff-pdf/blob/master/diff-pdf.cpp#L218

示例表格是标准W-9。我做了两个微妙的改变

  • 第二部分..将2.左移约2像素
  • 第二部分..在4.上,将字is移到右边2像素

enter image description here

enter image description here

并且比较泵出了这个(你几乎看不到的红色变化)

enter image description here

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以在Imagemagick中使用-morphology dilate来增加红色区域的大小。例如,使用两种形式:

convert JW0wZ.png 1nHWT.png -compose difference -composite -morphology dilate disk:10 +level-colors black,red result.gif

enter image description here

更新:

如果您希望背景透明,请尝试

convert JW0wZ.png 1nHWT.png -compose difference -composite -morphology dilate disk:10 +level-colors "black,red" -fuzz 20% -transparent black result.png

enter image description here

或更好

convert JW0wZ.png 1nHWT.png -compose difference -composite -morphology dilate disk:10 -alpha copy -background red -alpha shape result2.png

enter image description here

更新2:以下是如何在您的两张原稿上叠加50%黄色标记。根据需要更改值。我创建了一个差异图像并扩大了白色。然后我创建了一个50%的黄色图像。然后我使用差异图像作为掩模将每个原件与黄色合成。见https://www.imagemagick.org/Usage/compose/#compose

convert JW0wZ.png 1nHWT.png \
\( -clone 0,1 -compose difference -composite -morphology dilate disk:10 \) \
\( -clone 0 -fill yellow -colorize 100 -channel a -evaluate set 50% +channel \) \
\( -clone 0,3,2 -compose over -composite +write 1.png \) \
\( -clone 1,3,2 -compose over -composite +write 2.png \) \
null:

enter image description here

enter image description here

要查看此信息,如果在Unix上安装了X11,则可以执行

animate -delay 20 -resize 50% 1.png 2.png