2012-03-26 112 views
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` 

似乎是朝着一個稍微功能腳本的方式。

+0

手動運行命令以查看腳本掛在哪裏。當我嘗試用JPX壓縮壓縮圖像時ImageMagick凍結了我的電腦,所以它可能是一個錯誤。 – Blender 2012-03-26 16:13:54

+0

感謝@Blender,事實證明ImageMagick被困在多頁TIFF上。將第23行的'$ line'改爲'$ line [0]'讓我更靠近一點。乾杯! – CanOfBees 2012-03-26 18:21:57

回答

1

不知何故,我工作的一些TIFF有多個頁面圖像。直到我能確定爲什麼這是發生時,工作周圍看起來是這樣的:

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

[0]告訴ImageMagick的使用TIFF的第一頁。