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

OpenCV 作为第三方库编译并在 C++ 项目中使用

好久不见了,距离上一次更新博文也大概有一个多月了。本次主要是做一次记录。记录opencv如何作为一个三方库在项目中使用。

简介

记得大概在2019年的时候吧,我写过一篇关于如何在ubtuntu下安装opencv的文章,反响还是挺好的很多人都看过。ubuntu安装opencv的正确方式

那个是安装在全局的环境中的,现在呢考虑到项目的迁移性,所以希望可以将opencv当一个三方库在项目中使用,这样的话更加的灵活。
那么下面呢就介绍如何操作吧!

下载opencv source

如题所示就是到opencv的官网下载你需要的版本
在这里插入图片描述
我这里下载的是4.5.4的版本,然后在本地进行解压
在这里插入图片描述
解压完成以后,就需要给解压出来的文件放到对应项目的对应文件夹中
那么我这里是给它放到了third_party文件中了
在这里插入图片描述

编译

完成了上面的操作以后,就需要开始进行编译了。编译的时候呢也需要有一些前期的准备工作。
首先就是需要在opencv-4.5.4的目录下新建一个build文件夹,这里我建的是opencv_build这个目录
在这里插入图片描述
完成了这个操作以后呢,就需要进入到这个build目录下

opencv_build

接着就是执行下面的命令进行如下的操作

cmake ../ -DCMAKE_INSTALL_PREFIX=../opencv_install -DBUILD_SHARED_LIBS=ON

在这里插入图片描述
在这里插入图片描述
然后就是需要进行编译了,需要根据自己的设备性能进行编译:

make -j8

在这里插入图片描述
这个过程可能需要一段时间,大概10分钟以内可以完成。
看到如下的结果表示成功
在这里插入图片描述

测试

当完成了上述的所有工作以后,其实opencv就应该是可以使用了的。
但是我们依然还是需要测试一下的。首先需要创建一个测试文件用于写测试代码:
在这里插入图片描述
比如我这里的cv01.h
具体代码如下:


#ifndef COMPUTERVISION_CV01_H
#define COMPUTERVISION_CV01_H

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

int show() {
    // 打印当前工作目录
    char cwd[1024];
    if (getcwd(cwd, sizeof(cwd)) != NULL) {
        std::cout << "Current working directory: " << cwd << std::endl;
    } else {
        perror("getcwd() error");
        return -1;
    }

    // 读取图片
    cv::Mat image = cv::imread("../cvSrc/img.png");

    // 检查是否读取成功
    if (image.empty()) {
        std::cerr << "Could not open or find the image!" << std::endl;
        return -1;
    }

    // 创建窗口并显示图片
    cv::imshow("Image", image);
    cv::waitKey(0);

    return 0;
}

#endif //COMPUTERVISION_CV01_H

然后就是写CMakeLists.txt
具体如下:

cmake_minimum_required(VERSION 3.26)
project(ComputerVision)

set(CMAKE_CXX_STANDARD 17)

# 设置 OpenCVConfig.cmake 的路径
set(OpenCV_DIR /ClionProjects/ComputerVision/third_party/opencv-4.5.4/opencv_build)

# 使用 find_package 查找 OpenCV
find_package(OpenCV REQUIRED)

# 包含 OpenCV 头文件
include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(ComputerVision main.cpp
        src/eigen01.h
        cvSrc/cv01.h)

# 链接 OpenCV 库
target_link_libraries(ComputerVision ${OpenCV_LIBS})


执行验证一下:
在这里插入图片描述

可以看到这样就是ok了。


http://www.kler.cn/a/578770.html

相关文章:

  • 关于sqlalchemy的使用
  • 【备赛】stm32如何实现定时器延时/解决定时器中断刚开启就进中断的问题
  • 10. 【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--Ocelot 网关--认证
  • uniApp实战二:仿今日相机水印功能
  • 猫耳大型活动提效——组件低代码化
  • 服务器数据恢复—raid5阵列中硬盘出现坏道的数据恢复流程
  • Spring Boot启动流程及源码实现深度解析
  • 前端非技术性场景面试题
  • 长上下文 GRPO
  • 基于PyTorch的深度学习5——神经网络工具箱
  • 百货店的诞生与现代商业革命:结合开源AI智能客服、AI智能名片与S2B2C商城小程序的新视角
  • 通过HTML有序列表(ol/li)实现自动递增编号的完整解决方案
  • SpringBatch之ResultSet.next()
  • 基于Canvas和和原生JS实现俄罗斯方块小游戏
  • 【贪心算法】简介
  • el-input-number添加自定义内容class-unit
  • 【算法题】小鱼的航程
  • AWS中使用CloudFront分发位于S3中的静态网站
  • SV学习笔记——数组、队列
  • spring boot+vue项目(免费)