gpt4 book ai didi

image-processing - 由内而外的图像变换

转载 作者:行者123 更新时间:2023-12-04 06:08:14 26 4
gpt4 key购买 nike

在探索了 Heike 对我的 previous question about anamorphic transformations 的非常出色的回答之后,我最终想看到一个完全翻过来的图像。

这个想法是,不是仅仅通过变形变换来拉伸(stretch)图像,就像你正在拉动纸张的边缘一样,你实际上可以将纸张“从里到外”翻转。内部“像素”将被拉出到边缘(极大地扭曲/拉伸(stretch)),而外部像素将被向内压向中心(极大地缩小)。

我无法说明它,但尝试描述它的另一种方式是在这张图片中:

inside out image transform

因此,像素越红,它们转换到边缘的次数就越多(反之亦然)。

我尝试了 FindGeometricTransform,但它似乎并没有导致任何地方。

findgeometrictransform

为此在谷歌上搜索并不容易,而且我还没有在 Mathematica 中找到任何线索表明这种破坏性的转换是可能的。这是一种 2.5D 重新投影。

你怎么看?是否可以?

编辑

因此,感谢您的出色回答,我现在可以正确地说明我的问题:

这是莱昂纳多著名的 Anom Asil,它是对可怜的丽莎进行由内向外变换​​ () 的结果:

introverted mona lisa

这是布拉格Orloj:

inside out clock

这个的实际用途将很快出现,呃,很快......

谢谢!

最佳答案

也许是这样的:

f[x_, y_] := {x, y} (1/Norm@{x, y} - 1);
GraphicsGrid[{{
p = Rasterize[Graphics[ {Black, Disk[{0, 0}, 5],
Red, Disk[{0, 0}, 3],
Blue, Disk[{0, 0}, 2]}]],
ImageTransformation[p, f[#[[1]], #[[2]]] &,
DataRange -> {{-1, 1}, {-1, 1}}]}},
Frame -> All]

enter image description here

编辑

使用海科的 f该函数是双射的,它自己的逆:
f[x_, y_] := {x, y} (1/Norm[{x, y}, Infinity] - 1);
g[x_]:=ImageTransformation[x, f[#[[1]], #[[2]]] &,DataRange ->{{-1, 1}, {-1, 1}}]

GraphicsGrid[{{i, g@i, g@g@i}}, Frame -> All]

enter image description here

编辑

环境:
f[x_, y_, t_] := {x, y} ((1/Norm[{x, y}, Infinity] - 1 ) t + (1 - t));

enter image description here

关于image-processing - 由内而外的图像变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8270447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com