1

当我使用 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);

在此处输入图像描述 在此处输入图像描述

更新: 对于弗雷德的脚本,我使用了下面的命令

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

下面是我修改后的图像。

在此处输入图像描述

4

1 回答 1

0

更多的是评论而不是答案。

  1. 看起来失真参数只有视野值集(100),但缺少中心 X 和 Y 值。

  2. Plane2Cylinder 只是所需失真的一半。主体(杯子)不是一个完美的圆柱体,因此需要应用额外的轻微变形(可能是透视)以匹配足够的音高。

于 2017-04-13T13:11:02.503 回答