0

我需要一些帮助来编写一个 bash 脚本来调用命令行程序来进行批处理。我想要做的是调用一个名为 enfuse 的命令行程序,它将多个不同曝光的图像组合成一个图像。

通过在终端中键入以下内容来调用 Enfuse:

enfuse [options] [input files]

如果我想将 2 张图像(0000.jpg 和 0001.jpg)融合在一起,输出文件为 A0001.jpg,我会输入

enfuse -o A0001.jpg 0000.jpg 0001.jpg

然而,这不是我想做的。我有一个图像文件夹,其中图像按顺序命名(例如,0000.jpg、0001.jpg...1000.jpg),我想在其中插入多个图像括号,每个括号包含 2 个图像(0001.jpg)。 jpg & 0002.jpg 将是第一个括号,0003.jpg 和 0004.jpg 将是第二个括号,依此类推)

我如何编写一个脚本来调用 enfuse 在我的所有图像上运行,一次 2 个图像,输出名称是连续的(A0001.jpg,A0002.jpg ...)?Enfuse 可以使用通配符作为输入文件,但我不希望将整个文件夹融合到一个图像中,所以我不能只将 *.jpg 作为输入文件。

4

2 回答 2

0

我会使用脚本从文件名对列表中创建一个脚本,如下所示:

ls *jpg | awk '开始{n=1}{a=z;b=$1;if(n==2){print "enfuse -o A"b" "a" "b ;n=0;} z=b;n++ }'

于 2013-06-07T09:07:37.443 回答
0

你可以尝试这样的事情:

for i in {0000..1100}; do enfuse -o A$i.jpg $(( 10#$i*2 )).jpg $(( 10#$i*2 +1 )).jpg; done
于 2013-06-07T12:36:06.520 回答