Mathematica基础——图片的共形变换
1、对图像做平方的2倍变换:
ImageTransformation [图片,(#^2)*2&]
变换之后,图形会保持原图的尺寸,多余的部分会裁掉,缺少的部分会用空白填充!


2、给图片加上马赛克:
ImageTransformation [图片,8 Floor[#/8]+1&,DataRange->Full]


3、把马赛克变薄:
ImageTransformation [图片,2 Floor[#/2]+1&,DataRange->Full]


4、给图片加一个下雨的效果:
g = Function[p, With[{C = 150., R = 35.},
{p[[1]] + (R*Cos[(p[[1]] - C)*360*2/R]/6), p[[2]]}]];
ImageTransformation [图片,g,DataRange->Full]


5、对图片做如下 变换:
Sin[#^2]^2&


6、猫眼效果:
f[pt_] := With[{s = {0.55, 0.55}}, Module[{r, a}, r = Norm[pt - s]^2/Norm[s]; a = ArcTan @@ (pt - s); s + r {Cos[a], Sin[a]}]]


7、哈哈镜效果:
f[pt_] := With[{s = {.5, .5}}, Module[{r, a, rn}, r = Sqrt[Norm[pt - s] Max[s]]; a = ArcTan @@ (pt - s); s + r {Cos[a], Sin[a]}]];


8、旋转效果:
f[pt_] := With[{s = {.5, .5}}, Module[{r, a}, r = Norm[pt - s]^2/Max[s];
a = ArcTan @@ (pt - s)/Pi*180; pt + {Mod[(a/200 + r/2.), 16/200.] - 8/200., 0}]]

