Есть ли варианты в Plane2Cylinder искажения imageMagick, чтобы сделать изображение, как показано ниже?

Когда я использовал искажение Plane2Cylinder, я получил изображение, как показано ниже. Но я хочу, чтобы эффект был как второй. Прочтите мой код.

local nelem = 1 -- number of args local arg = ffi.new("const double[?]", nelem, {100}) -- local methos = ffi.new("const int", 15) return handle_result(self, lib.MagickDistortImage(self.wand,13, nelem, arg, 1)) ffi.cdef([[ typedef void MagickWand; typedef void PixelWand; MagickBooleanType MagickDistortImage(MagickWand *wand, DistortMethod method, const size_t, const double *args, const MagickBooleanType bestfit); 

введите описание изображения здесь введите описание изображения здесь

UPDATE: для скрипта fred я использовал команду ниже

 bash -x ./cylinderize.sh -m vertical -r 366.34955984688 -l 188.179 -w 16.6667 -p 23.428692808745 -n 96.097053534591 -e 1.75 -a 0 -v background -b none -f none -o -86-80.8315 single_color.png single_color.j.png 

Ниже приведено мое измененное изображение.

введите описание изображения здесь

Больше комментария, чем ответа.

  1. Похоже, что аргументы искажения имеют только значение поля зрения (100), но отсутствуют значения центра X и Y.

  2. Plane2Cylinder – это только половина искажений. Тема (кружка) не идеальный цилиндр, поэтому необходимо будет добавить небольшое небольшое искажение (возможно, Перспектива), чтобы соответствовать достаточной высоте.