c - imageMagick 的 Plane2Cylinder 扭曲中是否有一个选项可以制作如下所示的图像?

标签 c lua imagemagick magickwand

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

enter image description here enter image description here

更新: 对于 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

下面是我修改后的图片。

enter image description here

最佳答案

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

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

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

关于c - imageMagick 的 Plane2Cylinder 扭曲中是否有一个选项可以制作如下所示的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43390624/

相关文章:

c - 不兼容的指针类型和结构问题

c - 验证 C 中 union 中的整数输入

variables - 如何从另一个lua文件传递变量?

image - 如何使图像背景透明?

ruby-on-rails - 无法使用 RMagick 打开上传的图像文件

c - 井字游戏中的错误

c - 使用子字符串的转换规则转换字符串

c - Lua C API : undefined reference errors in liblua.a

c - 从 C 访问 Lua 子表字段

c++ - 线程中的 Magick++ 段错误