2

我想实现一个过滤器,它允许通过移动一些标记边缘和切线方向的控制点来重新采样图像。目标是当您使用“自由变换”并选择变形模式“自定义”时,能够像在 Photoshop 中看到的那样自由变换图像。图像适合某种可以操作的样条补丁(如果这是一个有效名称)。

我了解简单样条线(路径)的工作原理,但是如何将它们连接起来形成补丁?您如何采样这样的补丁来渲染变形图像?对于目标中的每个像素,我需要知道源图像中对应的像素。我什至不知道从哪里开始搜索...

非常感谢任何有用的信息(关键字、链接、论文、参考实现)!

4

1 回答 1

3

本文档将使您对翘曲有一个很好的了解:http ://www.gson.org/thesis/warping-thesis.pdf

但是,这将包括滤除高频,这将使实现更加复杂,但会产生更好的结果。

完成您想要做的事情的一种简单方法是遍历最终图像中的每个像素,将坐标插入样条曲线并检索原始图像中的像素。该像素的坐标可能为 0.4/1.2,因此您可以在 0/1、1/1、0/2 和 1/2 之间进行双线性插值。

至于样条:一维案例在线有很多资源和解决方案。至于 2D,找到有用的资源有点棘手。一维案例的简单示例:http ://www-users.cselabs.umn.edu/classes/Spring-2009/csci2031/quad_spline.pdf

这是 2D 案例的绝佳指南:http ://en.wikipedia.org/wiki/Bicubic_interpolation

基于此,您可以为 2D 案例推导出自己的样条方案。定义一个双变量(带有 x 和 y)多项式并设置约束来求解多项式的系数。请记住,样条补丁的边界必须保持一致(无论是值还是导数)以避免丑陋的跳跃。

祝你好运!

于 2011-07-13T13:12:17.973 回答