1
感谢您的阅读。我遇到了执行ImageMagick比较的脚本的性能问题。ImageMagick比较shell脚本似乎挂起
这是脚本:
#!/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被困在TIFFs与多个页面。更改以下
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`
似乎是朝着一个稍微功能脚本的方式。
手动运行命令以查看脚本挂在哪里。当我尝试用JPX压缩压缩图像时ImageMagick冻结了我的电脑,所以它可能是一个错误。 – Blender 2012-03-26 16:13:54
感谢@Blender,事实证明ImageMagick被困在多页TIFF上。将第23行的'$ line'改为'$ line [0]'让我更靠近一点。干杯! – CanOfBees 2012-03-26 18:21:57