2011-06-09 400 views
1

我想從視頻中提取關鍵幀。 現在我正在使用一個循環來比較一個幀的樣本和前一幀的樣本,但是這種方法不太好。Java - 從視頻中提取關鍵幀

讓我解釋一下:我有一個監控錄像,我必須選擇有變化的幀(出現一個人,出現另一個人,一個人走開,等)現在我使用這個類比較幀:Java Image Comparison/Motion Detection Class

你知道別的辦法嗎?

謝謝!

回答

4

我不知道你所謂的「關鍵幀」。你的方法將使你才發現,場景轉換,但是這是不是通常是通過在視頻解碼的「關鍵幀」的意思是:這是相當平常的I-frame(可自行解碼的幀,不參照其它幀) 。 (經常場景轉換是關鍵幀,但不一定是其他方式)。這個概念當然與視頻編解碼器相關,但是大多數現代編解碼器(來自MPEG-1)實現了這個概念。但請注意,這與原始照片本身無關,但與編解碼器無關。

如果要檢測這些關鍵幀(I幀),那麼你必須看看你的視頻解碼API裏面,看它是否讓你得到這個信息。看來,xuggle爲您提供了IVideoPicture.getPictureType()方法,但我沒有使用它。

+0

感謝您的解釋,但我正在尋找一種方法來尋找場景轉換,讓我解釋一下: 我有一個監控視頻,我必須選擇有變化的幀(一個人出現,另一個人出現,一個人走開,等) 現在,我使用這個類來比較幀:http://mindmeat.blogspot.com/2008/07/java-image-comparison.html – 2011-06-11 10:25:00

+0

你要要在實時或批處理模式下執行?你爲什麼坐着帽子「這種方法不太好」? – leonbloy 2011-06-11 12:59:47

+0

我想在批處理模式下執行此操作。 這種方法不是很好,因爲如果我的視頻顯示的是正在運行的人,則此方法會提取視頻的每一幀,因爲它在兩幀之間找到太多差異。 這是因爲我正在尋找其他方法來進行關鍵幀提取。 – 2011-06-12 16:19:46