IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> opencv + contrib windows下源码编译 -> 正文阅读

[开发工具]opencv + contrib windows下源码编译

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

以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"  ]; then
    echo "cloning opencv"
    git clone https://github.com/opencv/opencv.git
else
    cd opencv
    git pull --rebase
    cd ..
fi
if [  ! -d "$myRepo/opencv_contrib"  ]; then
    echo "cloning opencv_contrib"
    git clone https://github.com/opencv/opencv_contrib.git
else
    cd opencv_contrib
    git pull --rebase
    cd ..
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 裁剪+编译,什么时候有空再讲!

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:45:36  更:2022-03-08 22:46:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:51:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码