opencv4.5,ubuntu16.04编译,移植
一、安装必要的依赖环境
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
最后3个模块是供opencv调用rtsp视频流的
后期需要python版本numpy的话需要安装python版本和其对应的numpy版本(下面是python3版本例子)
sudo apt-get install python3-dev python3-numpy
二、下载opencv和opencv-contrib
github下载很慢,而且很容易中断,建议采用gitee的方式下载,详见参考资料5
三、解压下载好的包
unzip opencv-4.5.0.zip
unzip opencv_contrib-4.5.0.zip
解压完后需要将opencv_contrib.zip提取到opencv目录下
sudo cp -r opencv_contrib-4.5.0 opencv-4.5.0/
在该目录下新建一个文件夹build
cd opencv-4.5.0
mkdir build
cd build
四、cmake获取一些依赖项
sudo cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_PYTHON3_INSTALL_PATH=/usr/local/lib/python3.5/dist-packages \
-D OPENCV_EXTRA_MODULES_PATH=/home/userrname/opencv-4.5.0/opencv_contrib-4.5.0/modules/ \
-DOPENCV_ENABLE_NONFREE=True ..
上述命令注意路径,跟自己电脑上的路径保持一致
上述过程中会下载一些必要的安装包,由于我朝众所周知的原因,下载过程很慢,大概率会下载失败
下载失败后,不会一直卡着不动,最终这个命令能正常执行完,但是后续正式编译会报错
待这个命令执行完之后,需要手动下载一些文件
1. 卡在ippicv下载的地方,一直下载不下来
ippicv.png从参考资料3中找到对应的下载位置,手动下载到本地(建议存放到ippicv的cmake文件所在位置)
修改ippicv的cmake配置文件
sudo gedit opencv-4.5.0/3rdparty/ippicv/ippicv.cmake
将第47行替换为本地路径
URL
"${OPENCV_IPPICV_URL}"
"$ENV{OPENCV_IPPICV_URL}"
#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
"/home/usrname/opencv-4.5.0/3rdparty/ippicv/"
2. 卡在face_landmark_model.dat下载的地方,一直下载不下来
face_landmark.png从网上下载face_landmark_model.dat,放置到本地(建议放在face模块位置)
修改face模块的配置文件
sudo gedit /home/username/opencv-4.5.0/opencv_contrib/modules/face/CMakeLists.txt
将第19行替换为本地路径
URL
"${OPENCV_FACE_ALIGNMENT_URL}"
"$ENV{OPENCV_FACE_ALIGNMENT_URL}"
#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/"
"/home/username/opencv-4.5.0/opencv_contrib/modules/face/src
/"
3. 卡在vgg_generated下载的地方,一直下载不下来
boostdesc_bgm.pngvgg_generated.png
参考资料4中有下载地址,下载成功后放在 opencv_contrib/modules/xfeatures2d/src/ 路径下即可
五、make编译
sudo make -j4
根据make结果进行安装
sudo make install
安装成功后,本机就可以正常使用了
六、打包编译好的动态库
在需要的地方创建一个文件夹
mkdir -p opencv450/lib
cd opencv450
将安装好的opencv库打包进新建的文件夹内,留作新的电脑内使用
cp /usr/local/lib/libopencv* opencv450/lib
cp /usr/local/lib/python3.5/dist-packages/cv2/python-3.5/cv2.cpython-35m-x86_64-linux-gnu.so opencv450/cv2.so
以上命令注意文件路径
七、将编译好的opencv动态库放到新的电脑指定路径内
cp opencv420/lib/libopencv* /usr/local/lib/
cp opencv420/cv2.so /usr/local/lib/python3.5/dist-packages/cv2.so
以上命令注意文件路径
这样就可以在新电脑中测试opencv了,哈哈!!
参考资料:
1. ubuntu16.04+opencv420+移植到新的相对应的环境中
2. ubuntu16.04 安装opencv IPPICV 和 face_landmark_model.dat下载不下来的问题解决
3. ubuntu安装opencv无法下载IPPICV的问题 ippicv_2020_lnx_intel64_20191018_general.tgz
4. 编译OpenCV提示opencv_contrib缺少boostdesc_bgm.i等文件
5. 2020年github文件高速下载方法