Я установил ImageMagickV6 на свой Linux-компьютер с незапамятных времен и недавно настроил эту команду для обработки искаженного изображения:
convert ref_25X.tif -virtual-pixel Gray +distort Plane2Cylinder 60 MIFF:- | \
convert - -rotate 90 MIFF:- | \
convert - -virtual-pixel Gray +distort Plane2Cylinder 50 MIFF:- | \
convert - -rotate -92 MIFF:- | \
convert - -distort Perspective '10,10 10,10 10,1000 10,1000 1280,10 1280,30 1280,1000 1280,980' MIFF:- | \
convert - -shave 80x100 plane1.png
Поскольку окончательное приложение будет работать на компьютере с Windows, я скопировал его туда, чтобы обнаружить, что на этом компьютере установлена версия IMv7. А в версии 7 они радикально изменили способ работы с командной строкой, как описано в https://imagemagick.org/script/command-line-processing.php.
Поэтому я попытался заново научиться работать с исправлением искажений в V7 и обнаружил, что индексная страница https://imagemagick.org/index.php ссылки на справку V6 https://imagemagick.org/Usage/distorts/, поэтому его нельзя использовать!!!
Может кто-нибудь показать мне, как справиться с этим в IMv7?
MIFF:- | convert -
, и оно все равно будет работать. Вы напрасно записываете каждую стадию обработки через канал и запускаете новый процесс для его чтения, когда у вас все равно уже есть изображение в памяти! Вот пример выполнения нескольких действий с одним изображением stackoverflow.com/a/28109569/2836621. - person Mark Setchell   schedule 05.02.2020