2014-12-03 67 views
0

我有一個視頻源爲不同的設備(例如:高清電視,平板電腦,智能手機等)生成許多數據流,他們每個人都必須相互檢查相似度。視頻流每秒發佈50個圖像,每20毫秒發佈一個圖像。例如,在ts1 = 1時,來自stream1的img1,ts2 = 1時來自stream2的img2,ts = 2時來自stream1的img1.1(比ts = 1晚20毫秒),比較結果應該是這個樣子:檢查不同大小圖像上的相似度

比較(IMG1,IMG1)= 1個相同的圖像大小相同

比較(IMG1,IMG2)= 0.9相同的圖像大小不同

比較(IMG1,img1.1) = 0.8不同圖像相同尺寸

理想情況下這應該是實時完成的,因此在20毫秒內,目標是瞭解流是否不同步,我已經實施了一些比較方法(它們中沒有人適用於這種情況):

1)直方圖( SSE和OpenCV cuda),結果比較(img1,img2)〜=比較(img1,img1.1)

2)pnsr(SSE和OCV cuda),結果比較(img1,img2)< compare(img1,img1 1.1)

3)SSIM(SSE和OCV CUDA),導致同PNSR

也許我得到,因爲調整大小interpola的不良後果方法?

是否有可能實現滿足我的要求,任何想法的比較方法?

+0

請看phash.org – berak 2014-12-03 11:36:21

回答

0

恐怕你遇到了真正的問題(TM)。這不是一個簡單的讓我們付諸實踐的問題。

主要挑戰是你不能做一個蠻力比較。高清圖像是3 MB或更多,並且您正在討論O(N * M)比較(在時間和跨流)。

你基本上需要的是一種對調整大小但隨時間而變化的指紋。正如你沒有意識到的那樣(例如直方圖的想法是相當時間穩定的),你沒有在這個問題中包含必要的信息。

所以這不是一個C++的問題,真的。你需要了解你的輸入。

相關問題