好的,所以在询问之前,我将提供一些背景知识:您可以使用 QuickTime java 从视频中抓取帧。我的目标是使用搜索方法抓取某些帧并比较这些帧以查看它们是否相似。我知道二分搜索非常有效,但是如果您有 1000 帧并且每次比较两帧时抓取一帧的时间成本非常高。
我的问题是:有没有比二进制搜索更快的方法来解决这个问题?有什么办法可以降低时间成本?
好的,所以在询问之前,我将提供一些背景知识:您可以使用 QuickTime java 从视频中抓取帧。我的目标是使用搜索方法抓取某些帧并比较这些帧以查看它们是否相似。我知道二分搜索非常有效,但是如果您有 1000 帧并且每次比较两帧时抓取一帧的时间成本非常高。
我的问题是:有没有比二进制搜索更快的方法来解决这个问题?有什么办法可以降低时间成本?
如果我理解正确,那么您基本上要做的是找到一个转换时间的向量(通过转换,我的意思是改变幻灯片)。
而且您似乎已经有了某种机制来确定两个框架是否包含同一张幻灯片。
我肯定会进行某种二进制搜索。您从第一帧和最后一帧开始,并始终将它们与它们之间的中间帧进行比较(关于时间)。如果两个帧相同,则不必在它们之间查看(假设演示文稿是线性的并且没有重复的幻灯片)。您还可以引入显示幻灯片的最短持续时间(假设幻灯片至少显示 3 秒),这将为递归提供更早的断点。
您还可以通过仅向他们提供框架的相关部分(检测投影仪区域)来协助比较。
二进制搜索仅适用于排序集。因此,不要指望使用该方法在“常规”视频中找到丢失的帧。