[环境配置]opencv+opencv_contrib在Linux下编译配置

内容简介:

        OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。该拥有2500多种算法,可用于人像、物体检测识别、图像分类、寻找相似图像、文字识别、机器人自动驾驶领域等。

        OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。

Opencv下载:

        本文配置安装的版本为Opencv3.4.10,环境为Ubuntu16.04。注:Linux下安装Opencv需要先安装cmake。

以下为官网给出的Opencv3.4.10的链接:

https://codeload.github.com/opencv/opencv/zip/3.4.10

 Releases · opencv/opencv_contrib · GitHub

 Opencv编译:

下载好Opencv源码后,进入源码文件夹,创建build文件夹,并将opencv_contrib3.4.10文件夹重命名为opencv_contrib放入Opencv源码目录下,这里给出cmake编译指令,直接在命令行中运行即可,所有指令如下:

cd opencv-3.4.10
mkdir build
cd build

注:

WITH_OPENGL=ON为OpenGL选项开启 ,WITH_GTK_2_X=ON默认开启即可;

BUILD_TYPE=RELEASE为编译release库

CMAKE_INSTALL_PREFIX=/usr/local/opencv3为你指定Opencv要安装到的位置,推荐路径不变。

BUILD_NEW_PYTHON_SUPPORT=ON 为开启python支持

WITH_CUDA=ON WITH_NVCUVID=ON为开启cuda支持,需要显卡支持且安装显卡驱动和cuda,如果需要则开启

OPENCV_EXTRA_MODULES_PATH=/home/l/Downloads/opencv-3.4.10/opencv_contrib/modules该路径为opencv_contrib模块所在路径

OPENCV_ENABLE_NONFREE=ON使用特征提取模块sift、surf算子需开启此项

命令行执行如下编译指令: 

cmake -D WITH_OPENGL=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_CUDA=ON -D WITH_NVCUVID=ON -D WITH_GTK_2_X=ON -D OPENCV_EXTRA_MODULES_PATH=/home/l/Downloads/opencv-3.4.10/opencv_contrib/modules -D OPENCV_ENABLE_NONFREE=ON ..

无报错即表示配置成功,接着进行下一步

sudo make -j8
sudo make install

然后将该目录添加到系统环境变量中:

sudo gedit ~/.bashrc

在该文件中添加如下语句:

#opencv2
#export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig"  
#export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu"

#opencv3
export PKG_CONFIG_PATH="/usr/local/opencv3/lib/pkgconfig"  
export LD_LIBRARY_PATH="/usr/local/opencv3/lib"

 #为注释符,这样可以在opencv各个版本之间切换,只需要取消注释需要的版本即可。 如下指令可以让环境在当前bash生效。或者重启bash也可达到同样的效果。

source ~/.bashrc

 查看当前生效版本可以用如下指令,查看其安装路径文件夹名称即可知道具体版本。

`pkg-config --libs --cflags opencv`

安装结束后,建议不要删除源码目录,防止可能需要卸载时需手动删除,卸载时可以在build文件夹中执行卸载指令,指令如下:

sudo make uninstall

Opencv测试: 

       在自己的测试代码文件夹下,新建showImg.cpp,将下面的代码写入其中

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;


int main(int argc,char **argv)
{
	Mat Img = imread(argv[1]);
	imshow("TestImg",Img);
	waitKey(0);
	return 0;
}

执行编译指令:

g++ showImg.cpp -o showImg `pkg-config --libs --cflags opencv`

运行可执行文件:(apple.jpg为自己准备显示的图片)

./showImg apple.jpg

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要基于 Android 的 OpenCV 4.0.1 和 OpenCV Contrib 4.0.1 进行编译,可以按照以下步骤进行: 1. 下载 OpenCV 4.0.1 和 OpenCV Contrib 4.0.1 的源代码: ``` git clone https://github.com/opencv/opencv.git cd opencv git checkout 4.0.1 cd .. git clone https://github.com/opencv/opencv_contrib.git cd opencv_contrib git checkout 4.0.1 ``` 2. 安装 Android NDK 和 Android SDK,并设置相应的环境变量。 3. 在 opencv 目录下创建一个 build 目录,并进入该目录: ``` mkdir build cd build ``` 4. 运行以下命令,生成 OpenCV Android 库: ``` cmake -DANDROID_ABI=armeabi-v7a \ -DANDROID_PLATFORM=android-21 \ -DANDROID_TOOLCHAIN=clang \ -DANDROID_STL=c++_static \ -DWITH_OPENCL=OFF \ -DWITH_IPP=OFF \ -DWITH_TBB=OFF \ -DWITH_MATLAB=OFF \ -DWITH_CUDA=OFF \ -DWITH_GTK=OFF \ -DBUILD_opencv_apps=OFF \ -DBUILD_ANDROID_EXAMPLES=OFF \ -DBUILD_ANDROID_PROJECTS=OFF \ -DBUILD_DOCS=OFF \ -DBUILD_EXAMPLES=OFF \ -DBUILD_PACKAGE=OFF \ -DBUILD_PERF_TESTS=OFF \ -DBUILD_TESTS=OFF \ -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_TOOLCHAIN_FILE=../../android.toolchain.cmake \ ../ ``` 其中,`ANDROID_ABI` 表示 Android 平台架构,这里设置为 `armeabi-v7a`,表示 ARMv7 架构;`ANDROID_PLATFORM` 表示 Android 平台版本,这里设置为 `android-21`;`ANDROID_TOOLCHAIN` 表示使用的工具链,这里设置为 `clang`;`ANDROID_STL` 表示使用C++ 标准库,这里设置为 `c++_static`,表示静态链接;`WITH_OPENCL`、`WITH_IPP`、`WITH_TBB`、`WITH_MATLAB`、`WITH_CUDA`、`WITH_GTK` 分别表示是否启用 OpenCL、IPP、TBB、MATLAB、CUDA、GTK 等功能,这里都设置为 `OFF`;`BUILD_opencv_apps`、`BUILD_ANDROID_EXAMPLES`、`BUILD_ANDROID_PROJECTS`、`BUILD_DOCS`、`BUILD_EXAMPLES`、`BUILD_PACKAGE`、`BUILD_PERF_TESTS`、`BUILD_TESTS` 分别表示是否编译 OpenCV 应用程序、Android 示例、Android 项目、文档、示例、打包、性能测试、测试,这里都设置为 `OFF`;`OPENCV_EXTRA_MODULES_PATH` 表示 OpenCV Contrib 目录的路径;`CMAKE_BUILD_TYPE` 表示编译类型,这里设置为 `Release`;`CMAKE_TOOLCHAIN_FILE` 表示使用的交叉编译工具链文件。 5. 运行以下命令,编译生成 OpenCV Android 库: ``` make -j4 ``` 其中,`-j4` 表示使用 4 个核心进行编译。 6. 在 build 目录下会生成一个 `sdk` 目录,其中包含编译好的 OpenCV Android 库。 可以将该库导入到 Android Studio 中,然后在项目中使用该库提供的函数进行开发。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值