2012-06-20 34 views
0

好吧,在問之前我要給出一點背景: 您可以使用QuickTime java從視頻抓取幀。我的目標是通過搜索方法來抓取某些幀,並比較幀以查看它們是否相似。我知道二進制搜索是非常有效的,但是如果你有1000幀,並且每次你要比較兩幀時花費在一幀的成本非常高。使用java比較來自視頻的圖像的最快方法

我的問題是: 是否有任何方法比二進制搜索這個問題與Java? 有什麼辦法可以降低時間成本嗎?

+3

二進制搜索?它在一個有序集合上工作。你如何分類框架? –

+0

我想你必須給我們更多關於你在做什麼的信息。也許還有一些示例圖像。 – brimborium

+0

好的。所以你有一個視頻。你知道他們是按時間順序的。我從視頻中提取一幀(圖像),將其與另一幀進行比較,並使用ocr比較文本以瞭解它們是否與視頻分段相似。如果這些幀相似,那麼它們來自相同的片段(視頻講座的相同副主題)。所以這些圖像包含了演示文稿和演講人。 – PrettyGirl

回答

0

如果我正確地理解了這一點,你基本上試圖做的是找到一個過渡時間向量(並通過轉換我的意思是改變幻燈片)。

而且您似乎已經有某種機制來確定兩個幀是否包含相同的幻燈片。

我肯定會去某種二進制搜索。你從第一幀和最後一幀開始,始終將它們與它們之間的中間幀(關於時間)進行比較。如果兩個框架相同,則不必在它們之間查看(假設演示文稿是線性的並且沒有重複的幻燈片)。您還可以引入顯示的幻燈片的最小持續時間(例如,假設幻燈片至少顯示3秒),這將爲遞歸提供較早的中斷點。

您也可以通過僅向它們提供框架的相關部分(檢測投影區域)來協助比較。

0

二進制搜索僅適用於有序集合。因此,不要指望在使用該方法的「常規」視頻中找到丟失的幀。