相关疑难解决方法(0)

如何使ImageTransformation产生一个变形版本的图像

我正在尝试使用ImageTransformation函数来尝试制作变形版本的图像,但到目前为止进展有限.我的目标是使用在柱面镜中反射的图像得到的结果,图像在中心镜周围弯曲约270度.在维基百科的文章有几个精致的例子(和我借霍尔拜因的头骨从他们太).

i = Import["../Desktop/Holbein_Skull.jpg"];
Run Code Online (Sandbox Code Playgroud)

维基百科holbein头骨

i = ImageResize[i, 120]
f[x_, y_] := {(2 (y - 0.3) Cos [1.5 x]), (2 (y - 0.3) Sin [1.5 x])};
ImageTransformation[i, f[#[[1]], #[[2]]] &, Padding -> White] 
Run Code Online (Sandbox Code Playgroud)

维基百科holbein头骨

但我无法说服Mathematica向我展示整个图像,或者正确地弯曲它.变形图像应该围绕放置在图像中心"内部"的镜子,但它不会.我通过将其放入一个操作(并将分辨率降低:)来找到常量的合适值.我正在使用这个公式:

x1 = a(y + b) cos(kx)
y1 = a(y + b) sin(kx)
Run Code Online (Sandbox Code Playgroud)

任何帮助产生更好的结果将不胜感激!

wolfram-mathematica image-processing

9
推荐指数
1
解决办法
1977
查看次数