是否有任何工具可以对图像执行相当于“git diff”的操作(看看有什么变化?)

问题描述 投票:0回答:4

我正在尝试找出一种方法,通过比较年度卫星图像来更快地确定新建筑的位置。

在 Google 地球中,无论出于何种原因,您都可以在卫星图像上回滚时钟,并确定这些年来发生了什么变化。一件有趣的事情是你可以确定新的建筑。目前,我正在手动进行,速度非常慢。

我知道卫星照片会因天气、照片曝光变化、季节变化等而有很大差异,所以我的计划是在卫星照片上运行一些 photoshop 滤镜以尝试使图像正常化,然后运行某种“差异”过程以突出显示发生变化的地方。

这里有两张卫星照片的例子,一张是2013年5月拍的,另一张是2015年1月拍的。

如果我可以运行一些流程来突出显示发生了巨大变化的区域,那么在这种情况下,新房屋将很容易识别,那就太好了。也许在最近的(2015 年)照片上输出看起来像这样......

好吧,显然它看起来不像那样,但我认为最后一张图片概述了我在这里的目的。

谢谢

image image-processing diff
4个回答
6
投票

不幸的是,您所拥有的两张图片的光照差异很大。在 2013 年 5 月的图像上,时间接近正午,太阳直射头顶,这意味着没有阴影 - 因此,当时站立的房屋与周围的地面几乎没有区别。在 2015 年 1 月的图像中,光线来自图像底部,阴影很刺眼。因此,您所做的任何差异都不会检测到房屋数量的变化,而是照明的变化将占主导地位。

flicker_compare
网站上有一个名为
ImageMagick
的工具,可以在图像之间快速滑动,可以帮助您手动进行差异。我是这样用的:

flicker_cmp -d 100 -o animated.gif jan2015.jpg may2013.jpg

对不起,我没有其他建议。


5
投票

查看 git-diff-image。 “git diff”的扩展,提供对差异图像的支持。它也可以作为直接 CLI 命令运行,用于区分两个图像文件。


1
投票

是的,有这样的工具。例如,您可以使用ImageMagick中的comparel方法来比较两个图像。它本身不是视觉差异工具,而是一个您可以在其上构建自己的工具的库。它有一系列令人难以置信的突出差异的选项。


0
投票

我在这上面花了太多时间,所以我认为值得分享我的经验。 git-diff-image 是我编写最小和更快的图像差异工具的灵感。

所以首先你需要在 .gitattributes 文件中设置支持的图像类型,如下所示:

*.jpeg diff=image
*.jpg diff=image
*.png diff=image

这可以在 root 中完成,但然后在你的 root git 配置文件中指定它,如下所示:

[core]
    attributesfile = ~/.gitattributes

然后你需要为这样的图像指定 diff 命令(在 git 配置文件中):

[diff "image"]
    command = ~/bin/image-diff.sh

我还创建了 diff-image 别名:

[alias]
    diff-image = "!f() { cd -- \"${GIT_PREFIX:-.}\"; GIT_DIFF_IMAGE_ENABLED=1 git diff \"$@\"; }; f"

现在对于图像比较,您可以使用 odiff 或 pixelmatch(我更喜欢 odiff 因为它的输出)。使用 npm 进行全局安装:

npm install -g odiff-bin
npm install -g pixelmatch

最后你需要编写 image-diff.sh:

#!/bin/sh

set - # "set -e" is default and if diff tools returns non 0 exit code then git produces "fatal: external diff died"

bn="$(basename "$1")"

if [[ -z "$GIT_DIFF_IMAGE_ENABLED" ]]; then
  echo "Diffing disabled for \"$bn\". Use 'git diff-image' to see image diffs."
else
  echo "Diffing ${bn}"
  destfile="$(mktemp -t "$bn").png"
  odiff "$1" "$2" "$destfile"
  open "$destfile"
fi

现在您可以使用“git diff-image”查看视觉差异。

© www.soinside.com 2019 - 2024. All rights reserved.