熟练拆装opencv4.4等高版本

前期准备

建立make目标文件夹

cd /usr/local/
sudo mkdir opencv4.4.0

开始下载和编译

cd ~/opencv4.4.0
# 下载opencv并解压
# sudo add-apt-repository “deb http://security.ubuntu.com/ubuntu xenial-security main”
# sudo apt update
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
git clone https://github.com/opencv/opencv.git
cd opencv // 就是clone的文件夹
mkdir build && cd build 
# make三连
# CMAKE_INSTALL_PREFIX的参数写install路径,
# OPENCV_EXTRA_MODULES_PATH的参数写opencv_contrib的路径,但3.2.0的总是不成功,可以不写
# BUILD_opencv_python、PYTHON_LIBRARY、PYTHON3_NUMPY_INCLUDE_DIRS
# 4.4.0版本cmake
sudo cmake -D WITH_TBB=ON -D WITH_EIGEN=ON -D OPENCV_GENERATE_PKGCONFIG=ON  -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF  -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=O -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.5.4 ..

# 3.2.0版本cmake
sudo cmake -D WITH_TBB=ON -D WITH_EIGEN=ON -D WITH_GTK=ON -D ENABLE_PRECOMPILED_HEADERS=OFF -D OPENCV_GENERATE_PKGCONFIG=ON  -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=ON  -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=O -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.2.0 -D INSTALL_PYTHON_EXAMPLES=ON  -D OPENCV_ENABLE_NONFREE=ON -D BUILD_opencv_python=ON -D PYTHON_EXECUTABLE=/usr/bin/python2.7 -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so -D PYTHON_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include/ ..



sudo make -j16
sudo make install

配置环境

# 配置环境
sudo gedit /etc/ld.so.conf.d/opencv.conf
# 文末加上
/usr/local/opencv4.4.0/lib
# 配置生效
sudo ldconfig

如果没有生成.pc文件的方法

cd /usr/local/opencv4.4.0/lib
sudo mkdir pkgconfig && cd pkgconfig
sudo touch opencv.pc
sudo gedit opencv.pc

把以下内容 放入opencv.pc,注意更改前四行的文件夹目录,与make的目标文件夹相同

prefix=/usr/local/opencv4.4.0
exec_prefix=${prefix}
includedir=/usr/local/opencv4.4.0/include
libdir=/usr/local/opencv4.4.0/lib

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.4.0
Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}

配置环境变量

# 配置bash
sudo gedit /etc/bash.bashrc
# 文末加上
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv4.4.0/lib/pkgconfig
export PKG_CONFIG_PATH
# 保存,执行这两行命令使得配置生效:
source /etc/bash.bashrc
sudo updatedb

但后面需要将cv2.so软链接放入python的dist-package中。usr/local/lib优先级高于usr/lib。

sudo ln -s /usr/local/opencv3.2.0/lib/python2.7/dist-packages/cv2.so /opt/ros/melodic/lib/python2.7/dist-packages/cv2.so
sudo ln -s /usr/local/opencv3.2.0/lib/python2.7/dist-packages/cv2.so /usr/local/lib/python2.7/dist-packages/cv2/python-2.7/cv2.so

测试

pkg-config --modversion opencv
python
import cv2
print(cv2.__version__)

拆掉

参考博客

关于pkg-config和import cv2的版本结果不一致

参考链接
参考链接2

PS:搞了一下午呜呜呜,求点赞~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
opencv-4.4.0-vc14_vc15.exe 版本4.4.0 2020年7月 OpenCV 4.x的夏季更新已发布 :晴天: 此版本的亮点: SIFT(尺度不变特征变换)算法已移至主存储库(SIFT的专利已过期) DNN模块: 改进的图层/激活/支持更多模型: 最新的Yolo v4检测器:#17148。为[yolo]层(Yolo v3和Yolo v4)禁用了每层NMS,因为它们是不正确的-用于cv::dnn::NMSBoxes所有检测。 ONNX:添加对Resnet_backbone(Torchvision)的支持#16887 EfficientDet模型支持:#17384 新样本/演示: 添加文本识别示例:C ++ / Python FlowNet2光流:#16575 英特尔®推理引擎后端(OpenVINO™): 增加了对OpenVINO 2020.3 LTS / 2020.4版本的支持 计划在下一版本中删除对NN Builder API的支持 CUDA后端中的许多修复和优化(感谢@YashasSamaga):PR G-API模块: 在OpenCV后端引入了用于状态内核的新API :GAPI_OCV_KERNEL_ST。有状态内核在各个图执行(标准中更多)或流的视频帧之间(以流模式)保留其状态。 在G-API推出更多面向视频的操作:goodFeaturesToTrack,buildOpticalFlowPyramid,calcOpicalFlowPyrLK。 添加了更多的图像处理内核:Laplacian和双边过滤器。 修复了G-API的OpenCL后端中的潜在崩溃。 OpenCV社区的许多其他伟大贡献,包括但不限于: Obj-C / Swift绑定:#17165 (opencv_contrib)Julia绑定是正在进行的GSoC项目的一部分:#2547 (opencv_contrib)BIMEF:生物启发的多重曝光融合框架,用于弱光图像增强: #2448 为CV_16UC1图像启用Otsu阈值:#16640 为文本检测添加笔划宽度变换算法:#2464 计划在Apache 2许可证上进行下一版本OE-32的 迁移#17491

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值