Bash 将图像的差异输出到文本文件

Bash 将图像的差异输出到文本文件,bash,imagemagick,Bash,Imagemagick,我试图将几组图像与一个参考集进行比较。当我在Imagemagick中玩弄RMSE度量时,我非常愿意看到其他方法。假设我有一个文件夹,里面有5张图片。文件夹B、C、D和E中也有同样的5幅图像,但略有改动。我想做的是将B中的文件与A、C中的文件与A等进行比较,然后将结果输出到一个文件中,以便稍后在电子表格中使用。这是我目前的解决方案,但它不是很漂亮,只输出到命令行,只能将一个文件夹与引用进行比较,对于成千上万的图像来说并不实用 #!/bin/bash folder1=A folder2=B cd

我试图将几组图像与一个参考集进行比较。当我在Imagemagick中玩弄RMSE度量时,我非常愿意看到其他方法。假设我有一个文件夹,里面有5张图片。文件夹B、C、D和E中也有同样的5幅图像,但略有改动。我想做的是将B中的文件与A、C中的文件与A等进行比较,然后将结果输出到一个文件中,以便稍后在电子表格中使用。这是我目前的解决方案,但它不是很漂亮,只输出到命令行,只能将一个文件夹与引用进行比较,对于成千上万的图像来说并不实用

#!/bin/bash

folder1=A
folder2=B

cd "$folder1"
shopt -s nullglob
for f in *.png; do
  file1="$f"
  file2="$folder2/$f" 
  compare -metric RMSE "$file1" "$file2" NULL:
done

输出
1754.1(0.0267658)2148.58(0.0327852)2417.38(0.0368868)2488.65(0.0379744)2113.88(0.0322557)
。如果您能帮我解决这个问题,我将不胜感激

运行此操作之前,请将工作目录更改为包含A、B、C、D和E的目录

for folder in B C D E; do
    for image in A/*.png; do
        compare -metric RMSE "$image" "$folder/${image##*/}" NULL:
    done &> "${folder,}.txt"
done

这无疑是正确的,但也有一些问题。即使试图输出到文本文件,它也只输出到终端,它会将所有内容输出到一个文件中,我更喜欢将其输出到多个文件中(例如,b.txt、c.txt等)。