ubuntu16.04+安装opencv及扩展库+dense_flow教程(吐血总结,亲测有效,超详细)

时间:2024-05-19 21:45:47

因为要用到dense_flow对视频进行光流提取剪切图片帧,需要配置dense_flow基础环境,利用opencv源文件进行安装,特此总结,自己走过的坑跪着也要写完。
配置ubuntu16.04
cmake-3.16.0
cuda9.2
boost
opencv-4.1.0
opencv_contrib-4.1.0
(opencv-4.1.0及opencv_contrib-4.1.0可以网上下载对应版本,也可以在我百度盘链接找到:https://pan.baidu.com/s/1lkSCfGW7PN7pFCJBMyT2Uw 提取码:tbq5)

1.安装依赖库 添加opencv所需要的依赖库
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

2.安装opencv-4.1.0
将opencv-4.1.0与opencv_contrib-4.1.0分别解压,保持平行就可以
cd opencv-4.1.0 (进入opencv-4.1.0文件夹)
mkdir build && cd build (建立build文件夹并进入build)
cmake -DCMAKE_BUILD_TYPE=Release -DWITH_CUDA=ON -DOPENCV_EXTRA_MODULES_PATH=…/…/opencv_contrib-4.1.0/modules/ -DWITH_TBB=ON -DBUILD_opencv_cnn_3dobj=OFF -DBUILD_opencv_dnn=OFF -DBUILD_opencv_dnn_modern=OFF -DBUILD_opencv_dnns_easily_fooled=OFF … (注意最后的两个…)
make -j (make -j 本人电脑比较卡建议用make -j4或者make -j8
如果-j没有给定具体的数量,make命令将不限制并行任务的数量,-jn表示用几个线程来编译,这样可以加快编译速度。)

3.安装dense_flow
需要下载dense_flow
git clone --recursive http://github.com/yjxiong/dense_flow 然后将对应的CLUE和easylogging++文件夹放到dense_flow-4.1.0/include路径下; 如果直接git clone会导致CLUE和easylogging++文件夹下是空的。
cd …/…/dense_flow
mkdir build && cd build
OpenCV_DIR=…/…/opencv-4.1.0/build/ cmake …
make -j
(make -j 本人电脑比较卡建议用make -j4或者make -j8)

问题1.

ubuntu16.04+安装opencv及扩展库+dense_flow教程(吐血总结,亲测有效,超详细)
cmake时如果出现上图问题可以找到相应文件夹vim编辑在出问题的的 没有那个文件或者目录下加上绝对路径,其他缺失文件都可以这样处理。
ubuntu16.04+安装opencv及扩展库+dense_flow教程(吐血总结,亲测有效,超详细)
问题2
ubuntu16.04+安装opencv及扩展库+dense_flow教程(吐血总结,亲测有效,超详细)
出现如图所示的问题建议在dense_flow中的CMakeLists.txt添加set (OpenCV_DIR /home/bishuai/opencv-4.1.0/build/)

ubuntu16.04+安装opencv及扩展库+dense_flow教程(吐血总结,亲测有效,超详细)
问题4
如果想要安装别的版本需要先把之前版本删除 找到cd /usr/local/lib下ls列出所有文件
sudo rm -rf libopencv*删除所有opencv之前版本

当你看到这个画面
ubuntu16.04+安装opencv及扩展库+dense_flow教程(吐血总结,亲测有效,超详细)
兄弟们,恭喜你们,成功了,可以起掌声了,简直要泪奔,真香!!!
你已经安装好dense_flow,可以跃跃欲试了!

测试
在build文件夹下放入test.avi视频然后输入
./extract_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出现下边的错误,又开始有点怀疑人生了???难道还不行???
这是要我从安装opencv+dense_flow从开始到呕心沥血到快要成功再到放弃么!

ubuntu16.04+安装opencv及扩展库+dense_flow教程(吐血总结,亲测有效,超详细)
于是继续查资料
解决方案:在build文件夹下新建tmp文件夹,在tmp中新建flow_x;flow_y;image文件夹,重新执行,不在报错。

当你看到最后这张图片时你可以欢呼了
欢呼去吧,尽管过程很痛苦,但你成功了
ubuntu16.04+安装opencv及扩展库+dense_flow教程(吐血总结,亲测有效,超详细)