1.背景
(1)構成を完了するために次の構成作業opencv_contribを完了dense_flow
2. [設定dense_flow
サイトの操作に従ってください:https://github.com/yjxiong/dense_flow/tree/opencv-3.1
(1)依存関係を追加
ターミナルを実行します。apt-getをインストールlibzip-devの
フォルダdense_flowに直接渡されるので、(2)それがクローニングされています
なお:クローンはzipファイルをダウンロードすることができないの下でプロジェクトがでなければならない、そうでない場合は++が空になりますeasylogging!
执行ます。mkdir && CDビルドを構築
执行:cmakeの。.. && -j8を作ります
1つのエラー:
エラー:「DualTVL1OpticalFlow」は「CV :: optflowのメンバーではありません
dense_flow.cppは、GPUをオプティカルフロー抽出CPUを使用したので、これは、dense_flow.cppエラーですが、私は抽出することであるたいので、ファイルが私とはほとんどを持っているので、私はsrc以下のファイルを削除し、ツールを削除しますextract_flow.cppファイルとのdense_flow.cpp上のファイルにCMakeLists.txtエントリをコメントアウト:
#add_executable( extract_cpu tools/extract_flow.cpp)
#target_link_libraries( extract_cpu ${OpenCV_LIBS} ${LIBZIP_LIBRARY} denseflow)
あなたが本当に必要な場合は、ここで見つけることができます:https://github.com/open-mmlab/mmaction/issues/15
.. cmakeのを再実行し&& -j8作ります
成功!Sahua ......
3.テスト
(1)実行して、そのフォルダ内のビデオファイルtest.mp4を置き、ビルドディレクトリ内に終了しないでください。
./extract_gpu -f=test.mp4 -x=tmp/flow_x -y=tmp/flow_y -i=tmp/image -b=20 -t=1 -d=0 -s=1 -o=dir
エラー:
2019年10月26日17:11:22353 FATAL [デフォルト]クラッシュを扱います。アプリケーション起因[SIGSEGV]信号にクラッシュした
アプリケーションを中断[デフォルト] WARN 22353:11:2019年10月26日17。理由:[5583 /dense_flow_opencv3.1/dense_flow/include/easylogging ++ / SRC / easylogging ++ H]での致命的なログ
已放弃(核心已转储)
ソリューション:; flow_y、画像フォルダ、再実行し、エラーではなく新しいフォルダtmpフォルダ、tmpに新しいflow_xを構築
なお、図オプティカルフローのY方向、抽出されたtmpファイルプラスXに見ることができる、ない画像ファイルが存在しません
(2)を行う光抽出反りの公式ウェブサイトによると:
./extract_warp_gpu -f test.avi -x tmp/flow_x -y tmp/flow_y -i tmp/image -b 20 -t 1 -d 0 -s 1 -o dir
私たちは文句を言うでしょう。
20 -t 1 -d 0 -s 1 -o dirの-b ./extract_warp_gpu -f test.avi -x TMP / flow_x -y TMP / flow_y -i TMP /画像
OpenCVのエラー:不正な引数(変換することはできません:[真] [INT])をfrom_strで、ファイル/opencv-3.1.0/modules/core/src/command_line_parser.cppは、ライン98
OpenCVのエラー:不正な引数は(変換することはできません:[真] [INT])にfrom_strに、ファイル/opencv-3.1.0/modules/core/src/command_line_parser.cpp、ライン98
OpenCVのエラー:from_strで、ファイル/opencv-3.1.0/modules:バッド引数([真] [INT]に変換することはできません) /core/src/command_line_parser.cpp、ライン98
OpenCVのエラー:不正な引数(変換することはできません:[真] [INT]に)from_strで、ファイル/opencv-3.1.0/modules/core/src/command_line_parser.cpp、ライン98
2019年10月26日17:32:00096 FATAL [デフォルト]チェック失敗しました:[video_stream.isOpened()]を開くことができませんビデオストリーム「真」オプティカルフロー抽出のため。
2019年10月26日17:32:00096は、アプリケーションを中断[デフォルト] WARN。理由:[/dense_flow_opencv3.1/dense_flow/src/dense_flow_gpu.cpp:19]で致命的なログ
(转储核心已)放弃已
そして、慎重に前のコマンドを比較し、パラメータの背中を見つけ=追加していない番号、プラスの誤差はしません、それは実行することです:
./extract_warp_gpu -f=test.mp4 -x=tmp/flow_x -y=tmp/flow_y -i=tmp/image -b=20 -t=1 -d=0 -s=1 -o=di
あなたがビデオのフレーム画像を抽出したい場合は(3)、あなたはbuild_of.pyファイルを参照し、修正することができます。
fcount = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT))
次のように:
fcount = int(video.get(cv2.CAP_PROP_FRAME_COUNT))
それ以外の場合はエラーになります。
この時点で、必要なすべての機能が達成されている、残りはゆっくりと光の流れを抽出している.............