当前位置: 首页 > news >正文

opencv 模块裁剪 按需安装指定模块

!!!!!!建议都看完再操作

1、实现方式

BUILD_LIST(https://github.com/opencv/opencv/blob/4.x/CMakeLists.txt#L195) + 当前版本模块列表(OpenCV: OpenCV modules)

不知道需要安装哪些模块?

  1. 可以访问 OpenCV: OpenCV modules  然后在搜索框中输入自己需要的函数名,如下图
  2. 点击对应函数名,在跳转后的页面搜include,这样就可以根据对应头文件确定模块名
  3.  OpenCV: OpenCV modules

2、编译官方安装文档

  1. OpenCV: Installation in Linux
  2. 编译宏参数参考,可以按需选择module OpenCV: OpenCV configuration options reference

3、示例——仅编译安装core module

cd opencv-4.x统计目录
mkdir build && cd build
# 配置指令执行后会输出安装路径,搜索“Install to:”可以看到,默认是/usr/local;
# 可以通过修改opencv-4.x/CMakeList.txt内容,修改安装路径,关键字CMAKE_INSTALL_PREFIX
# 默认编译的是动态库;编译输出静态库宏参数:-DBUILD_SHARED_LIBS=OFF
cmake ../opencv-4.x -DBUILD_LIST=core
# 执行编译
cmake --build .# 编译后验证
ls bin
ls libls OpenCVConfig*.cmake
ls OpenCVModules.cmake# 执行安装|安装过程会输出头文件及库文件的输出路径
make install# 安装后验证
可以去指定的安装路径下查看对应头文件及库文件
核心路径:bin  include  lib64  share

4、core module 静态库验证

#include <iostream>
#include "include/opencv4/opencv2/core/cvdef.h"
#include "include/opencv4/opencv2/core/cvstd.hpp"// 指定路径安装,在对应安装路径下执行如下编译命令
// 编译命令:g++ core_t.cc -std=c++17 -I./ -L./lib64
int main(int args, char* argv[]) {std::cout << cv::toLowerCase("ABcdEfg") << "\n";return 0;
}

自测opencv 编译报错 一堆undefine reference,可以试试如下编译命令 xxxx换成自己的文件名

 g++ `pkg-config --cflags opencv` xxxx.cc `pkg-config --libs opencv` -std=c++14

http://www.xdnf.cn/news/1205839.html

相关文章:

  • MCU 中的 PWM(脉冲宽度调制)是什么?
  • 未授权访问复现
  • Python动态规划:从基础到高阶优化的全面指南
  • 未授权访问漏洞靶场(redis,MongoDB,Memcached...)
  • Unity_UI_NGUI_锚点组件
  • 项目如何按时交付?重点关注的几点
  • 【Linux操作系统】简学深悟启示录:Linux环境基础开发工具使用
  • GoLand 项目从 0 到 1:第三天 —— 图数据库版本管理方案调研与中间件部署
  • Dify-14: 工作流API端点
  • 在虚拟机ubuntu上修改framebuffer桌面不能显示图像
  • STM32F4—电源管理器
  • YOLOv11改进:添加SCConv空间和通道重构卷积二次创新C3k2
  • 时间数字转换器TDC的FPGA方案及核心代码
  • 数分思维10:用户增长
  • 小智源码分析——音频部分(二)
  • 机器学习sklearn:决策树的参数、属性、接口
  • mp核心功能
  • S7-200 SMART 通过本体 RS485 口与 DP01 上传 / 下载程序(网口故障)
  • Java项目:基于SSM框架实现的进销存管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】
  • 我从 Web2 转型到 Web3 的 9 条经验总结
  • 架构实战——互联网架构模板(“存储层”技术)
  • fchown/fchownat系统调用及示例
  • 坚鹏:AI智能体培训是知行学成为AI智能体创新应用引领者的基础
  • 3DGRUT: 革命性的3D高斯粒子光线追踪与混合光栅化技术深度解析
  • Item18:让接口容易被正确使用,不易被误用
  • 鱼皮项目简易版 RPC 框架开发(二)
  • JavaScript:10个数组方法/属性
  • ROS2入门之开发环境搭建
  • 【C++】手搓一个STL风格的vector容器
  • vue如何在data里使用this