场景
我当前项目的Flash前端生成Web服务器需要组合成视频的图像.帧速率和帧分辨率都足够大,以至于将图像序列发送到后端是不可行的(在时间和客户端带宽中).相反,我们也试图在后端重新创建图像.
正确和缓慢,或不正确和快速
问题是这涉及到相当多的绘制纹理三角形,我们在Python(here和there)中找到的两个解决方案效率很低,每帧绘图大约需要60秒,因此处理时间高达7.5小时30秒剪辑的时间.不能接受的.
当使用PHP模块向ImageMagick发送命令进行图像处理时,整个过程超快(每帧十分之一秒),但ImageMagick seems to be unable to draw triangles就像我们在前端那样做,所以最终结果不匹配.不能接受的.
我在这里问的是,是否有人知道如何解决这个问题,通过任何必要的方式在Web服务器上运行.
扭曲图像
让我来解释一下前端的过程:
>对图像中的点执行Delaunay计算,以获得均匀分布的三角形网格.
>偏移网格中的点/顶点,扭曲或扭曲图像.
>在新位图上绘制扭曲的三角形.
我们可以将步骤1和2的结果(坐标)发送到后端,然后绘制扭曲的三角形并将其保存到磁盘上的图像(或作为帧添加到视频中).但最后一步是我需要帮助的.
问题
ImageMagick有替代方法可以在位图中绘制三角形吗?是否有其他库,如C库,可以让我们这样做?或者我们可以通过切换后端技术(如Ruby)来更轻松地实现这一效果吗? (不幸的是,.Net和Java现在不是真正的选择)
非常感谢. EP.
解决方法
Opencv是一个支持多种图像变形和合成的c库.