0

我编写了一些代码来通过 1000 多帧图像序列自动跟踪许多对象。对象边界和中心由我的算法以 xml 格式输出。我正在制作一个网站来展示我的结果,并且我想要一个具有正常播放、暂停、前进、倒带功能的可导航幻灯片。我目前有一个 php-javascript 圆形框架队列设置。它的工作原理是让 10 帧包含图像 1-10,然后当用户想要查看图像 2 时,更改视图并将图像 11 加载到帧 1 中,依此类推。这种循环队列样式适用于正常滚动,但我想每 100 毫秒更改一次图像,但它会陷入困境。在这方面有更好的方法吗?

我减速的主要来源是我的图像是在 GD 中从包含大量数据点的 xml 文件动态绘制的。我正在使用 file_get_contents 和 simpleXMLELement 函数将数据放入数组中,然后使用 imagepolygon 将它们绘制在图像上。有没有更好的方法来做到这一点?

每张图像大约为 1400 x 900,其中包含 30-500 个对象,具体取决于它在序列中的距离。我曾尝试存储物理绘制的图像,但由于用户需要能够隔离对象 1-10 或 3、7、8-11,由于排列的数量,这是不可能的。

4

1 回答 1

1

我将抛出一些头脑风暴类型的想法:

  1. 将对象边界绘制为设置了高度和宽度的相对定位的 div。这样,您不必为每个可能的组合生成图像。可以在页面上动态为任何给定对象打开对象跟踪。缺点是速度较慢的客户端可能会缓慢渲染 500 个 div。

  2. 另一种减少动态渲染需求的方法 - 将每个对象的所有跟踪帧(一次)渲染为透明背景(PNG 或 GIF)上的多边形。查看帧时,将所有适当的对象跟踪帧叠加在背景层上。没有渲染问题,只是客户端加载 500 张图像时的加载延迟。

  3. 无需每次都解析 XML 文件,而是创建一个 PHP 数组,其中包含包含文件中的所有数据点。

  4. 为您的服务器获得更快的处理器和大量 RAM。

就像我说的 - 随机的想法。也许它们让你思考,也许它们对我来说只是有趣的思考。祝你好运。

于 2010-08-06T17:12:51.950 回答