ImageMagick比较shell脚本似乎挂了

时间:2012-03-26 16:10:32

标签: linux bash shell imagemagick

感谢阅读。我正在编写一个执行ImageMagick比较的脚本的性能问题。

这是剧本:

#!/bin/sh

find */ -name '*.tif' > temp-tif-list.txt

FILE="temp-tif-list.txt"

exec 3<&0
exec 0<$FILE
while read line
do
    J2K=`echo "$line" | sed 's/.tif/.jp2/'`
    PSNR=`compare -quiet -metric psnr $line $J2K null: 2>&1 | cut -d . -f 1`
    VALUE=45
    if [ "$PSNR" -le "$VALUE" ]
    then
        echo "possible problem with $line... compare value is $PSNR" >> visual-check.txt
        continue
    fi
done
echo "Deleting generated files..."
rm -f temp-tif-list.txt
exec 0<&3

这个脚本是针对类似这样的目录结构运行的:

    foo/
        foo-1.tif
        foo-1.jp2
        foo-2.tif
        foo-2.jp2
    foo2/
        foo2-1.tif
        foo2-1.jp2
        foo2-2.tif
        foo2-2.jp2
    ...
    ...
    etc

一切都很快出错;一旦脚本在foo-1.tif和foo-1.jp2上开始比较,它似乎挂起(CPU跳转到799%)。非常感谢任何建议!

干杯!

编辑:ImageMagick卡在多页的TIFF上。改变以下

    PSNR=`compare -quiet -metric psnr $line $J2K null: 2>&1 | cut -d . -f 1`

    PSNR=`compare -quiet -metric psnr $line[0] $J2K null: 2>&1 | cut -d . -f 1`

似乎是朝向更具功能性的脚本的方式。

1 个答案:

答案 0 :(得分:1)

不知何故,我使用的一些TIFF有多个页面图像。在我确定为什么会发生这种情况之前,解决方案看起来像这样:

compare -metric psnr TIFF-NAME-TIF[0] DERIVATIVE-NAME-EXT 

[0]告诉ImageMagick使用TIFF的第一页。