发布时间:2023-04-23 19:00
不得不说,玩转ubuntu真是一道道坎,不论是ROS还是OpenCV,都很容易卡在安装,最大的问题是需求文件下载不下来(被墙了)
官网和github分别下载opencv,解压后放在同一个文件夹(网上有坑),最好改名一个为opencv,一个为opencv_contrib,编译的时候很多都没带版本号,并在同级再建一个build文件夹,这三个文件夹我放在了~/opencv;
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libopenexr-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt-get install python-dev-is-python3 python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper1 libjasper-dev libdc1394-22-dev
复制下面代码到txt,修改好再复制到终端执行(在buid文件夹下执行)
cmake ../opencv -DCMAKE_BUILD_TYPE=Release \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DOPENCV_EXTRA_MODULES_PATH=/home/your_usr_name/opencv/opencv_contrib/modules -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DWITH_GTK_2_X=ON \
-DWITH_OPENGL=ON
第三行的your_usr_name换成自己的用户名
为什么没定义如下的python安装选项?因为我python用的anaconda虚拟环境,已经装了cv2,让它自己去装吧。
-DPYTHON3_EXECUTABLE=/usr/bin/python3
-DPYTHON_INCLUDE_DIR=/usr/include/python3.8
-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.8.so
-DPYTHON3_NUMPY_INCLUDE_DIRS=/home/bbnc/.local/lib/python3.8/site-packages/numpy/core/include \
如果没有连接外网,执行过程会卡住,是因为文件下载不下来,等他卡完(一会儿就会跳过结束)这时候,去build文件夹,打开CMakeDownloadLog.txt文件,这里面记录了下载失败的文件,搜索关键词cmake_download,我这里有13个
这些文件想办法下载下来,我放到了百度网盘
链接: https://pan.baidu.com/s/1CKqAYFKbtnF2FW7pQUSS0g
提取码: cfg4
使用方法:ippicv_2020_lnx_intel64_20191018_general.tgz这个文件放在/home/your_usr_name/opencv/opencv/3rdparty/ippicv/文件夹下,并打开该文件夹下的ippicv.cmake文件,修改如下:
face_landmark_model.dat这个文件放在/home/your_usr_name/opencv/opencv_contrib/modules/face/文件夹,并修改该文件夹下的CMakeLists.txt文件如下:
其余的文件均放在opencv_contrib/modules/xfeatures2d/src/文件夹下
buid 文件夹下继续执行
make -j8
等报错
然后第一次报错可能就比较奇怪:
make: *** [Makefile:163:all] 错误 2
这时候再执行
make
很快会定位出错的地方,例如下面
这个就是少了test_detectors_regression.impl.hpp,网上搜索了一下,解决办法:
将opencv / modules / features2d复制,然后粘贴到build目录中。
OK没再出问题。