Сценарий сравнения ImageMagick, похоже, зависает - PullRequest
1 голос
/ 26 марта 2012

спасибо за чтение.У меня проблемы с производительностью написанного мной сценария, который выполняет сравнение 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, кажется, что он зависает (загрузка процессора увеличивается до 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 Ответ

1 голос
/ 16 апреля 2012

Так или иначе, некоторые из TIFF, с которыми я работаю, имеют несколько изображений страниц. Пока я не могу определить, почему это происходит, обходной путь выглядит примерно так:

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

[0] говорит ImageMagick использовать первую страницу TIFF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...