You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Linux命令行生成保留颜色的可叠加图像差异透明图

实现方案(Linux命令行优先)

核心工具:ImageMagick

大部分Linux发行版可直接通过包管理器安装:

  • Debian/Ubuntu系:sudo apt install imagemagick
  • RHEL/CentOS/Fedora系:sudo dnf install ImageMagick

方案1:正常混合模式差异图(最符合需求)

该方案生成的差异图逻辑为:两张图像素完全一致的区域设为完全透明,不一致的区域直接保留第二张图的原始像素。将该差异图以正常混合模式叠加在第一张图上,可100%还原第二张图,颜色完全无损失。

操作命令:

# 先确保两张图尺寸、位深完全一致(本身已经一致可跳过,参数中分辨率替换为你自己的图像分辨率)
mogrify -resize "1920x1080!" -depth 8 第一张图.jpg 第二张图.jpg
# 生成带透明背景的差异图
convert 第一张图.jpg 第二张图.jpg \
  -compose difference -composite \
  -threshold 0 -negate \
  -alpha copy 第二张图.jpg +swap \
  -compose copy_opacity -composite \
  差异图.png

如果原始图是有损压缩的JPG,存在微小像素噪点,可调整阈值过滤噪点,比如把-threshold 0改成-threshold 3%,差值在3%以内的像素都会被判定为相同,设为透明。

效果验证

执行以下命令验证叠加效果是否和第二张图完全一致:

# 把差异图叠加在第一张图上生成结果图
convert 第一张图.jpg 差异图.png -compose over -composite 验证结果.png
# 对比结果图和原第二张图的差异
compare -metric RMSE 验证结果.png 第二张图.jpg null:

如果输出的RMSE值为0(或接近0的极小值),说明完全匹配。

方案2:差值混合模式差异图

如果需要用差值混合模式叠加,可使用以下命令生成带符号差值的差异图:

convert 第一张图.jpg 第二张图.jpg \
  -define compose:clamp=off \
  -compose minus -composite \
  -evaluate add 128 \
  -alpha set -channel A \
  -fx "p.r == 128 && p.g == 128 && p.b == 128 ? 0 : 1" \
  差值模式差异图.png

叠加时使用差值混合模式即可还原第二张图。

其他可选工具

  • ffmpeg:也可通过blend滤镜实现相同效果,适合批量处理视频帧类的图像需求
  • GIMP:图形界面工具,可通过「图层→掩码→显示差异」功能手动生成差异图,适合需要手动调整差异区域的场景

内容的提问来源于stack exchange,提问作者Joshua Anderson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:45:03