网上,包括书上有很多人云亦云的源码编译方式,不能说不正确但是有很多弯弯绕绕(坑)。最近刚做完了一个识别项目的第一个版本,总结了一下.。为了写这篇文章,特意重新在自己电脑搭了一遍开发环境。
最权威的方式是官方文档介绍

以windows下开发为例子,我们编译一个opencv + contrib 满血lib。

编译

  1. vs,c++环境。

  2. cmake-gui,其实只要 cmake (version >=3.9.1) 装一个gui主要是方便以后做裁剪编译。
    下载地址
    安装时选择自动加入path路径,不然你要手动添加一下。

  3. 安装git ,版本大于等于2.14.1
    主要是git bash,一般我是让idea自动安装的。

以上是主要的,次要的你可以还要安装python3(带二进制调试),jdk等。

  1. 给一个目录安装,建一个installOCV.sh的文件,写入
#!/bin/bash -e
myRepo=$(pwd)
CMAKE_GENERATOR_OPTIONS=-G"Visual Studio 17 2022"
#CMAKE_GENERATOR_OPTIONS=-G"Visual Studio 16 2019"
#CMAKE_GENERATOR_OPTIONS=-G"Visual Studio 15 2017 Win64"
#CMAKE_GENERATOR_OPTIONS=(-G"Visual Studio 16 2019" -A x64)  # CMake 3.14+ is required
if [  ! -d "$myRepo/opencv"  ]; thenecho "cloning opencv"git clone https://github.com/opencv/opencv.git
elsecd opencvgit pull --rebasecd ..
fi
if [  ! -d "$myRepo/opencv_contrib"  ]; thenecho "cloning opencv_contrib"git clone https://github.com/opencv/opencv_contrib.git
elsecd opencv_contribgit pull --rebasecd ..
fi
RepoSource=opencv
mkdir -p build_opencv
pushd build_opencv
CMAKE_OPTIONS=(-DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF -DBUILD_DOCS:BOOL=OFF  -DWITH_CUDA:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DINSTALL_CREATE_DISTRIB=ON)
set -x
cmake "${CMAKE_GENERATOR_OPTIONS[@]}" "${CMAKE_OPTIONS[@]}" -DOPENCV_EXTRA_MODULES_PATH="$myRepo"/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX="$myRepo/install/$RepoSource" "$myRepo/$RepoSource"
echo "************************* $Source_DIR -->debug"
cmake --build .  --config debug
echo "************************* $Source_DIR -->release"
cmake --build .  --config release
cmake --build .  --target install --config release
cmake --build .  --target install --config debug
popd

因为脚本有下载,所以最好在环境变量配置一下
key =http_proxy value=http://127.0.0.1:1080
key =https_proxy value=http://127.0.0.1:1080

  1. 双击执行sh
    官网建议:Drink a coffee or two… opencv is ready : That’s all!
    个人经验,2杯咖啡是不够,也有可能是我电脑不好!
    完成后在目录下生成一个 install文件

使用

设置环境变量
XXXX\install\opencv\x64\vc17\bin
XXXX\install\opencv\x64\vc17\lib
重启刷新环境变量
新建一个工程,CMakeLists.txt,类似这样

project(cnn)
set(OpenCV_DIR "XXXX/install/opencv")
find_package(OpenCV REQUIRED)
if(Opencv_FOUND)message(STATUS "The Opecv lib is found!")
endif()
add_executable(cnn main.cpp pca.cpp pca.h)
target_link_libraries(cnn ${OpenCV_LIBS})

测试一下,我们引入人脸模块看会不会报错

#include <iostream>
#include "opencv2/opencv.hpp"
#include "opencv2/face.hpp"using namespace std;
using namespace cv;
using namespace face;
int main() {std::cout<< "loading" <<std::endl;Mat foo = imread("IMG_2746.jpg");imshow("foo",foo);//用face模块的训练引擎,测试一下contrib Ptr<BasicFaceRecognizer> model = EigenFaceRecognizer::create();std::cout<< cv::getBuildInformation() <<std::endl;waitKey(0);return 0;
}

附android sdk的简单使用

最简单就是找好心人编译好打包好的aar,github应该有。

官方原版的,其实也是不要又是拷贝so,又是引入include的。
具体可以看官方OpenCV-android-sdk\sdk 目录下build.gradle上面的注释。
简单说就是sdk这个文件夹可以作为android 模块加入工程。然后,要用的时候在CMakeList中这样:

find_package(OpenCV 4.5 REQUIRED java)

跟上面一样的用法,因为gradle多了一种选择,可以把opencvDir设置在gradle里。

更简单就是我在用的,弄一个私人nexus,用什么导什么,新项目把自己的module组装一下。

至于,NDK 裁剪+编译,什么时候有空再讲!

opencv + contrib windows下源码编译相关推荐

  1. 手把手教你在windows下源码编译Open3D

    文章目录 前言 1.编译环境 2.编译步骤 3.编译中的bug 3.1 下载超时问题,ispc.pybind11.open3d_sphinx_theme等 3.2 boringssl 3.3 Dire ...

  2. 3Dslicer在windows下源码编译源码并打包程序亲测可用

    对于医疗图像数据可视化有一些比较成熟的开源软件库,其中包括volview(2011年已经停止维护和更新),MITK(德国非中科大版),3Dslicer和ITK-SNAP.3Dslicer功能非常的强大 ...

  3. windows和linux下源码编译7-Zip(7za)

    windows和linux下源码编译7-Zip(7za) 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录 windows和l ...

  4. Windows10下源码编译MXNet C++ api with OpenBlas

    为什么要编译等这种介绍性的文字就不多说了.直入主题:Windows下源码编译mxnet MXNet的依赖相对而言是比较少的了,但编译起来也不简单. 你可以按照官方的文档来编译,按道理来讲,结果都是一样 ...

  5. vc6可编译的 linux 源码,Linux 下源码编译FFMEG

    1. 安装依赖关系 $ sudo apt-get update $ sudo apt-get -y install autoconf automake build-essential libass-d ...

  6. linux下源码编译升级ssh版本,ssh打补丁过程

    linux下源码编译升级ssh版本过程 记录打补丁之ssh源码编译升级过程 安装前软件准备 升级步骤 结尾及一些坑 记录打补丁之ssh源码编译升级过程 应安全报告要求需要修复操作系统中的ssh协议,原 ...

  7. centos lnmp源码安装mysql_CentOS 6.6 下源码编译安装MySQL 5.7.5

    说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具 # yum -y install gcc-c++ ncurses-devel cmake make perl \ ...

  8. ubuntu安装python_ubuntu18.04下源码编译安装最新版本Python3

    原文链接:ubuntu18.04下源码编译安装最新版本Python3 截止到2019年4月9日,Python3最新的版本是3.7.3. 在ubuntu18.04中已经安装的Python3版本是3.6. ...

  9. Ubuntu下源码编译VirtualBox六 —— 源码编译(5)

    接前一篇文章<Ubuntu下源码编译VirtualBox五 -- 源码编译(4)>,链接如下: Ubuntu下源码编译VirtualBox五 -- 源码编译(4)_蓝天居士的博客-CSDN ...

最新文章

  1. EeePC1000hg安装archlinux20121201和openbox
  2. 如何使用eclipse软件创建一个Java项目?
  3. 编译py-faster-rcnn全过程
  4. 阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结
  5. 【Qt教程】2.1 - Qt5 UI设计器、常用控件
  6. 春运抢票靠加速包?试试这个 Python 开源项目吧
  7. Javascript:getElementsByClassName
  8. wpf menuitem 点击控件元素_一招教你如何在WPF界面开发时自定义外观,快来Get
  9. 路径规划之 A* 算法 1
  10. tomcat等web服务器的工作原理
  11. java嗅探网页视频_网页视频嗅探器( API钩子 )
  12. ipad降级系统无法接通服务器,红雪0.9.14b2基带降级图文教程
  13. 天龙八部稳定服务器,献给天龙八部Online的Fans们--职业玩家及所在服务器
  14. ​全球首个机器人抓取云竞赛落幕,华科夺冠,中国团队包揽前三
  15. 月模拟题3 201609-3 炉石传说
  16. 浙工大c语言期中考试试题答案,浙工大c语言程序设计期末试卷2
  17. 三次bezier曲线 MATLAB,Matlab-画二次及三次Bezier曲线-8控制点的B样条曲线
  18. 华夏相机开发/臻识相机开发/车牌识别器开发对接使用总结
  19. 【在线翻译英文】的网站
  20. Javascript frameworks

热门文章

  1. JavaWeb | HTTP 协议请求与响应格式
  2. (PMP)三、项目经理的角色
  3. 为何腾讯云在云服务市场败给了阿里云?
  4. 最新国内云计算服务商市场占有率排名,阿里云腾讯云华为云谁排名高
  5. Excel在统计分析中的应用—第五章—统计指数-Part5- 综合指数(费雪指数)
  6. FPGA always 和assign 用法
  7. 计算机网络思维导图 (免费下载)
  8. Scratch少儿编程案例-算法练习-实现加减乘除练习题
  9. 全能终端神器mobaxterm入坑指南
  10. java判断点与线与面的关系_高中数学必修二点线面的位置关系与线面平行判定及其性质(精华试题版)...