Ubuntu使用dense_flow提取視頻圖像的光流圖像


使用dense_flow求取圖像的光流圖像,原項目地址: https://github.com/wanglimin/dense_flow

該方法使用的是opecnv最基本的光流圖像計算方法,輸出為 flow_x 和flow_y 兩個圖像。

因為輸入同程序要求不同(視頻 -> 連續幀圖像),因此對程序進行部分修改,大體相同。

對該程序的編譯方法為:

假設程序的目錄為:$ROOT_DENSE

在對該程序進行編譯之前應該首先在CMakelist里面修改要進行編譯的源文件。

將第5, 6行修改為:

add_executable( denseFlow denseFlow.cpp )
target_link_libraries( denseFlow ${OpenCV_LIBS} )

 接下來對程序進行編譯:

cd $ROOT_DENSE
mkdir build
cd build
cmake ..
make

 注: 在使用該方法時,需要使用opecnv2.4.X版本,推薦使用2.4.10版本,如果已經安裝opencv更高版本,如3.0,需要對其進行修改。

(因3.0中有bug,所以在處理圖像數據過程中可能會出現問題),bug分析見:http://stackoverflow.com/questions/31996367/opencv-resize-fails-on-large-image-with-error-215-ssize-area-0-in-funct

當需要進行resize的圖像長度大於2^31時,ssize.area()返回值為負值。因此需要注釋掉下面語句:

  CV_Assert( ssize.area() > 0 ) 

 

對於圖像的高度height 大於寬度width 的圖像,需要對該語句進行注釋:

 CV_Assert( dsize.area() > 0 ) 

 

如果在項目開發中需要使用不同版本的opencv,那么對不同版本opencv管理方法見:Ubuntu下多個版本OpenCV管理(Multiple Opencv version)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM