opencv+opencv_contrib编译

opencv下载地址

opencv下载
或者
opencv下载-github

opencv_contrib下载地址

opencv_contrib下载

opencv+opencv_contrib编译方法

cd ~/opencv   #进入opencv 源码下,不是opencv_contrib
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=<install path> -D OPENCV_GENERATE_PKGCONFIG=YES -D OPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules -D BUILD_opencv_xfeatures2d=OFF -D BUILD_opencv_freetype=ON ..  #<opencv_contrib>源码路径, opencv_xfeatures2d=OFF 包不进行编译,可以进行选择设置不需要编译的包; opencv_freetype=ON表示默认不编辑的包,开启编译;install path 表示编译完后进行安装的路径,OPENCV_GENERATE_PKGCONFIG=YES 仅在opencv4.0以上使用
make -j5
sudo make install #进行安装,安装后,将里面的所有内容作为第三方包

opencv+opencv_contrib GPU 版本编译方法

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/raid/ZXF/use_software/opencv-gpu/opencv-3.4.10/install -D OPENCV_EXTRA_MODULES_PATH=/raid/ZXF/use_software/opencv-gpu/opencv_contrib-3.4.10/modules -D CUDA_ARCH_BIN=7.0 -D WITH_CUDA=ON -D WITH_TBB=ON -D  WITH_V4L=OFF -D  WITH_LIBV4L=ON  -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D WITH_QT=OFF -D WITH_NVCUVID=OFF -D ENABLE_PRECOMPILED_HEADERS=OFF -D BUILD_opencv_xfeatures2d=OFF ..

make -j8
sudo make install

1) 加入ffmpeg

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/Comac/software/opencv/benji/opencv-4.5.4/install -D OPENCV_EXTRA_MODULES_PATH=/Comac/software/opencv/benji/opencv_contrib-4.5.4/modules -D CUDA_ARCH_BIN=8.6 -D WITH_CUDA=ON -D WITH_TBB=ON -D  WITH_V4L=OFF -D  WITH_LIBV4L=ON -D OPENCV_DNN_CUDA=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D WITH_QT=OFF -D WITH_NVCUVID=OFF -D ENABLE_PRECOMPILED_HEADERS=OFF -D BUILD_opencv_xfeatures2d=OFF -D WITH_FFMPEG=ON ..

make -j8
sudo make install

2)加入 nvcuvid 硬解码与硬编码 -最终形态

  1. 下载NVIDIA VIDEO CODEC SDK
    https://developer.nvidia.com/nvidia-video-codec-sdk
  2. 注意每个sdk版本有cuda版本以及驱动版本的要求
  3. 下载包后,解压Video_Codec_SDK_11.1.5,拷贝Interface目录下的.h文件到cuda目录,拷贝命令如下:
sudo cp Video_Codec_SDK_11.1.5/Interface/* /usr/local/cuda-11.4/include/
  1. 编译opencv
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/Comac/上飞资料/opencv包/opencv-4.6.0/3090/install -D OPENCV_EXTRA_MODULES_PATH=/Comac/上飞资料/opencv包/opencv-4.6.0/3090/opencv_contrib-4.6.0/modules -D CUDA_ARCH_BIN=8.6 -D WITH_CUDA=ON -D OPENCV_DNN_CUDA=ON -D WITH_CUDNN=ON -D WITH_CUDEV=ON -D WITH_NVCUVID=ON -D BUILD_opencv_cudacodec=ON -D WITH_GSTREAMER=ON -D WITH_TBB=ON -D BUILD_TBB=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D WITH_V4L=ON -D WITH_LIBV4L=ON -D WITH_GTK_2_X=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_FFMPEG=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D BUILD_opencv_xfeatures2d=OFF ..

5)编译后的opencv在作为第三方包进行调用时,也要把Video_Codec_SDK_11.1.5/Interface/下的头文件拷贝到对应的/usr/local/cuda/include/下

注意:在opencv 4.7之前的版本不支持 cv::cudacodec::createVideoReader 在linux 上使用,在4.7及其以后更高的版本支持

作为第三方包被c++工程调用

第一种方法:
opencv作为3rdParty中的一个第三方包opencv调用,其包含两个文件“include” “lib”
假设编译的 opencv-4.5.1+opencv-4.5.1-contrib (注意两个版本号必须一致)
第三方包名假设命名为: opencv-4.5.1
其目录格式如下:

├── 3rdParty
	├──-----opencv-4.5.1
    		├──-----include
    				├──-----opencv  #4.5版本不再使用,3.4.10版本含有;好像是4.0以上都没了
    				├──-----opencv2
    		├──-----lib
#其中lib文件夹来自于“ ~/opencv-4.5.1/build/lib”
#include文件内容来自与 “~/opencv-4.5.1/include” ,之后再将文件夹" ~/opencv-4.5.1/modules"和“ ~/opencv_contrib-4.5.1/modules”中的每一个模块下的opencv2中的内容复制到opencv2中,例如“~/opencv_contrib-4.5.1/modules/alphamat/include/opencv2/*”可以使用如下脚本复制所有的头文件到“include/opencv2中”
cd /raid/ZXF/use_software/opencv-4.5.1/modules #进入opencv源码下的modules文件加下
cp -rf ./*/include/opencv2/* /raid/ZXF/project/3rdParty/opencv-4.5.1-contrib/include/opencv2
cd /raid/ZXF/use_software/opencv_contrib-4.5.1/modules  #进入opencv-contrib源码下的modules文件加下
cp -rf ./*/include/opencv2/* /raid/ZXF/project/3rdParty/opencv-4.5.1-contrib/include/opencv2

第二种方法:
取安装install路径下的 include 和 lib 文件 作为第三方包

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
编译安装OpenCV 3.2和OpenCV_contrib的步骤如下: 1. 首先,下载OpenCV 3.2的源代码和OpenCV_contrib的扩展模块源代码。可以从OpenCV的官方网站或GitHub上获取这些源代码。 2. 解压下载OpenCV 3.2源代码文件和OpenCV_contrib源代码文件,并将它们分别放置在不同的目录中。 3. 在终端中打开一个新的命令窗口,并导航到OpenCV的源代码目录。 4. 创建一个新的目录,用于保存编译后的OpenCV库文件。建议在源代码目录之外的某个位置创建此目录。 5. 在终端中输入以下命令来设置编译选项和安装路径: ``` cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/path/to/opencv_libs \ -D OPENCV_EXTRA_MODULES_PATH=/path/to/opencv_contrib/modules \ /path/to/opencv_source ``` 其中,`/path/to/opencv_libs`是你创建的用于保存库文件的目录路径,`/path/to/opencv_contrib/modules`是OpenCV_contrib源代码的路径,`/path/to/opencv_source`是OpenCV源代码的路径。 6. 输入以下命令编译和安装OpenCV库文件: ``` make -j4 sudo make install ``` 这将会使用4个线程(可根据你的机器性能进行调整)进行编译,并将编译后的文件安装在指定的安装路径中。 7. 安装完成后,可以在指定的安装路径中找到生成的OpenCV库文件。在你的项目中,应该设置正确的头文件和库文件路径来使用OpenCV。 这些是基本的步骤来编译和安装OpenCV 3.2和OpenCV_contrib。请注意,在编译和安装过程中,可能会遇到依赖问题或其他错误,这可能需要进一步的配置和处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值