【发布时间】:2016-11-01 13:02:19
【问题描述】:
理论上,我知道要扭曲图像,源图像中的每个像素(x,y) 使用函数 f(即x'=f(x,y) 和y'=f(x,y))转换为(x', y')。但是我可以使用什么数学方程来代替函数f()。
例如,我在一个网站上发现了以下用于扭曲图像的方法:
X' = X + [sin(aX) + cos(cY)] . d where a,b,c and d random values.
y'= the same above
我的问题:这样的等式从何而来?有没有系统的技术可以生成这样的方程,然后得到下面类似的扭曲图像?
另一个问题How to make a wave warp effect in shader?是问简单的波浪效果,和我的问题完全不一样。我的问题是关于如何建立表示其他复杂翘曲效应中的映射函数的方程,绝对不是像波动方程这样简单的方程,然后如何确定这些数学方程的系数“参数”(a、b、c 和 d) ,而不是反复试验
【问题讨论】:
-
如果您寻求数学帮助,Math.SE 是一个更好的地方
-
方程式来自你。也就是说,您编写转换点的函数。有一种系统化的技术可以生成方程。要获得与您链接的图像相似的东西,您必须进行试验。从事物的外观来看,它将像素向左和向下或向右和向下移动,具体取决于它们与它们所在图像的一半中心的水平距离。您必须尝试找到使用的确切公式。
-
从根本上说,它们平滑地移动像素区域,也就是说,像素的位移分布在图像中连续变化,并且不会“跳跃” - 这会导致撕裂
标签: algorithm math image-processing computer-vision warp