Если вы знаете координаты x, y и геометрию прямоугольников, которые вы пытаетесь извлечь;
use Image::Magick;
...
my $image = Image::Magick->new();
my $x = $image->Read($filename);
die "$x" if "$x";
# 100x100 is the size of the cropped image, the +40+40 are giving the x and y
# offsets (i.e. the upper-left coordinate of the cropped image)
$image->Crop(geometry=>"100x100+40+40");
Вы должны быть более конкретны в отношении цилиндров, но если это то, что я думаю, то проверьте Сценарий Цилиндризации Фреда . Приведенные примеры являются аргументами командной строки ImageMagick, так что есть немного работы, чтобы преобразовать его в эквивалент perl (или вы можете вызвать их, используя функцию exec () Perl).