2014-02-11 147 views
0

如何在Intel原子上的Linux中增加opencv視頻FPS?在使用opencv庫進行處理時,視頻似乎滯後。OpenCV FPS優化

此外,我試圖執行程序/文件opencv
system(/home/file/image.jpg);但是,它顯示拒絕訪問

+0

描述您的應用程序,找到瓶頸,然後它會更清晰地做什麼,否則人們會猜測。 – concept3d

+0

你在編譯模式下編譯?使用調試信息編譯時,Opencv非常慢。 – littleimp

+0

即時通訊不太確定使用哪種模式,我編譯withh g ++ ..這兩種模式之間有什麼區別,以及如何編譯每種模式? – Newbiesss

回答

0

有幾件事你可以做,以提高性能。使用OpenGL,GPU,甚至只是禁用OpenCV中的某些功能。當您捕捉視頻時,您還可以更改有時設置爲低的FPS默認值。如果您在該文件中拒絕訪問,我會檢查權限,但如果沒有設置完整的錯誤,則很難理解。

首先是禁用轉換的示例,第二個是設置所需的FPS。我認爲這些定義在OpenCV 3中有所變化。

cap.set(CV_CAP_PROP_CONVERT_RGB , false); 

cap.set(CV_CAP_PROP_FPS , 60); 
0

從你的問題,你似乎有一個問題,你的幀緩衝區正在收集很多幀,你無法在達到實時幀之前清除。即現在的幀捕捉,幾秒鐘後處理。我理解的正確嗎?

在這種情況下,我建議兩件事情,

  1. 使用一個單獨的線程來抓住從VideoCapture幀,然後將這些幀推到一個規模有限的隊列。當然這會導致幀丟失,但是如果你對實時處理感興趣,那麼這個成本通常是合理的。
  2. 如果您使用OOP,那麼我可能會建議爲每個對象使用一個單獨的線程,因爲這會顯着加快處理速度。根據所使用的應用和功能,您可以看到數倍的增長。