我编写了一些代码,通过1000多帧图像序列自动跟踪许多对象。物体边界和中心由我的算法以xml输出。我正在建立一个网站来展示我的结果,我想要一个可导航的幻灯片,其中包含正常播放,暂停,前进,后退功能。我目前有一个php-javascript循环帧队列设置。它通过使10帧包含图像1-10来工作,然后当用户想要看图像2时,改变视图并将图像11加载到帧1中,依此类推。这种循环队列样式适用于正常滚动,但我想每隔100毫秒更改一次图像并且它会陷入困境。在这方面有更好的方法吗?
我减速的主要原因是我的图像是在GD中从包含大量数据点的xml文件中动态绘制的。我使用file_get_contents和simpleXMLELement函数将数据导入数组,然后使用imagepolygon将它们绘制在图像上。有没有更好的方法呢?
每张图像大约1400乘900,其中有30到500个物体,具体取决于它的序列有多远。我已经尝试存储物理绘制的图像,但由于用户需要能够隔离对象1-10或3,7,8-11,这是不可能的,因为排列的数量。
答案 0 :(得分:1)
我要抛出一些头脑风暴的想法:
将对象边界绘制为设置了高度和宽度的相对定位的div。这样,您就不必为每种可能的组合生成图像。可以在页面上动态为任何给定对象打开对象跟踪。缺点是较慢的客户可能会缓慢地渲染500个div。
减少动态渲染需求的另一种方法 - 渲染(一次)每个对象的所有跟踪帧作为透明背景上的多边形(PNG或GIF)。查看框架时,在背景图层上层叠所有适当的对象跟踪框架。没有渲染问题,只是在客户端加载500张图像时出现负载延迟。
不是每次都解析XML文件,而是创建一个包含所有数据点的PHP数组。
为您的服务器获取更快的处理器和大量RAM。