给定两个图像缓冲区(假设它是一个大小宽度为*的整数数组,每个元素都有一个颜色值),如何将一个四边形定义的区域从一个图像缓冲区映射到另一个(总是方形)图像缓冲区?我被理解这被称为"投射变换".
我也在寻找一种通用的(不是语言或库特定的)方式,这样它可以合理地应用于任何语言而不依赖于"为我完成所有工作的魔术功能X".
一个例子:我用Java编写了一个简短的程序,使用处理库(processing.org)从相机中捕获视频.在初始"校准"步骤期间,捕获的视频直接输出到窗口中.然后,用户点击四个点来定义将被变换的视频区域,然后在程序的后续操作期间映射到方形窗口.如果用户单击定义在相机输出中以一定角度可见的门角的四个点,则此变换将导致后续视频将门的变换图像映射到窗口的整个区域,尽管有点扭曲.