"Diff" 使用 ImageMagick 强调的图像
"Diff" an image using ImageMagick with emphasis
跟进 “Diff” an image using ImageMagick
当您使用表单(而不是图像)时,使用此技术很难看到变化。我想在发生变化的实际像素周围显示某种类型的黄色高光,可能是 10-20 像素 "bigger"(填充)。
所以不仅仅是这个
类似这样的东西
似乎我只是在堆栈中遗漏了一些可以使这项工作正常进行的东西。
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 行 => "make the red as visible as possible"
https://github.com/vslavik/diff-pdf/blob/master/diff-pdf.cpp#L218
示例表格是标准 W-9。我做了 2 处细微的改动
- 第二部分 .. 将
2.
向左移动了大约 2 个像素
- 第二部分 ..
4.
,将单词 is
向右移动了 2 个像素
然后比较得出这个(你几乎看不到的红色变化)
感谢您的帮助
您可以在 Imagemagick 中使用 -morphology dilate 来增加红色区域的大小。例如,使用您的两种形式:
convert JW0wZ.png 1nHWT.png -compose difference -composite -morphology dilate disk:10 +level-colors black,red result.gif
更新:
如果你想要背景透明,那就试试
convert JW0wZ.png 1nHWT.png -compose difference -composite -morphology dilate disk:10 +level-colors "black,red" -fuzz 20% -transparent black result.png
或更好
convert JW0wZ.png 1nHWT.png -compose difference -composite -morphology dilate disk:10 -alpha copy -background red -alpha shape result2.png
更新 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:
要查看此内容,如果在 Unix 上并安装了 X11,您可以这样做
animate -delay 20 -resize 50% 1.png 2.png
跟进 “Diff” an image using ImageMagick
当您使用表单(而不是图像)时,使用此技术很难看到变化。我想在发生变化的实际像素周围显示某种类型的黄色高光,可能是 10-20 像素 "bigger"(填充)。
所以不仅仅是这个
类似这样的东西
似乎我只是在堆栈中遗漏了一些可以使这项工作正常进行的东西。
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 行 => "make the red as visible as possible"
https://github.com/vslavik/diff-pdf/blob/master/diff-pdf.cpp#L218
示例表格是标准 W-9。我做了 2 处细微的改动
- 第二部分 .. 将
2.
向左移动了大约 2 个像素 - 第二部分 ..
4.
,将单词is
向右移动了 2 个像素
然后比较得出这个(你几乎看不到的红色变化)
感谢您的帮助
您可以在 Imagemagick 中使用 -morphology dilate 来增加红色区域的大小。例如,使用您的两种形式:
convert JW0wZ.png 1nHWT.png -compose difference -composite -morphology dilate disk:10 +level-colors black,red result.gif
更新:
如果你想要背景透明,那就试试
convert JW0wZ.png 1nHWT.png -compose difference -composite -morphology dilate disk:10 +level-colors "black,red" -fuzz 20% -transparent black result.png
或更好
convert JW0wZ.png 1nHWT.png -compose difference -composite -morphology dilate disk:10 -alpha copy -background red -alpha shape result2.png
更新 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:
要查看此内容,如果在 Unix 上并安装了 X11,您可以这样做
animate -delay 20 -resize 50% 1.png 2.png