好的,在提问之前我先介绍一下背景: 您可以使用 QuickTime java 从视频中抓取帧。我的目标是通过搜索方法抓取某些帧并比较这些帧以查看它们是否相似。我知道二分搜索非常有效,但是如果您有大约 1000 个帧,并且每次比较两个帧时抓取一帧的时间成本非常高,该怎么办?
我的问题是: 对于java的这个问题,有没有比二分搜索更快的方法? 有什么办法可以减少时间成本吗?
最佳答案
如果我理解正确的话,你基本上想做的是找到过渡时间的 vector (我所说的过渡是指改变幻灯片)。
而且您似乎已经有了某种机制来查明两个框架是否包含同一张幻灯片。
我肯定会进行某种二分搜索。您从第一帧和最后一帧开始,并始终将它们与它们之间的中间帧进行比较(关于时间)。如果两个帧相同,则不必在它们之间查找(假设演示文稿是线性的并且没有重复的幻灯片)。您还可以引入幻灯片显示的最短持续时间(例如假设幻灯片至少显示 3 秒),这将为递归提供更早的断点。
您还可以通过仅向他们提供框架的相关部分(投影仪区域的检测)来协助比较。
关于java - 使用java比较视频图像的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122417/