【图像处理】VS编译opencv源码,并调用编译生成的库

news/2024/7/21 5:26:31 标签: 图像处理, opencv, 人工智能

背景
有些时候我们需要修改opencv相关源码, 这里介绍怎么编译修改并调用修改后的库文件。

步骤
1、下载相关源码工具:
下载opencv4.8源码并解压
https://down.chinaz.com/soft/40730.htm

下载VS2019,社区版免费
https://visualstudio.microsoft.com/zh-hans/downloads/

下载Cmake:https://cmake.org/download/

2、Cmake生成VS环境
选择源码位置,选择对应生成路径。点击Configure,等待运行完成后,再次点击Configure。完成后点击Generate
在这里插入图片描述

3、编译
在刚才的路径D:\opencv-4.8.0\build找到对应的sln工程文件,点击打开。
点击生成解决方案。
在这里插入图片描述
显示无法启动,这是因为当前启动项为ALL_BUILD,非可执行程序。
只要在目标文件夹能看到对应的生成库即可。D:\opencv-4.8.0\build\bin\Debug可以看到对应的dll文件

4、调用生成的库
1)VS新建工程,注意先设置工程为X64,添加对应的包含目录,这里根据自己需要调用的库文件需求添加。
包含目录下面的库目录也输入一下:D:\opencv-4.8.0\build\lib\Debug
在这里插入图片描述
链接库也是按需添加。
在这里插入图片描述
2)编写相关测试代码

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
using namespace std;
using namespace cv;

int main() {
	Mat img;
	imread("D:\\opencv-4.8.0\\lena.jpeg");
	cout << "hello" << endl;

	return 0;
}

编译运行,得到对应的结果。
3)修改opencv源文件

为了确保调用的是我们刚生成的库文件,这里我们在opencv中修改下代码。
找到loadsave.cpp
在这里插入图片描述
编译成功,库文件已更新
4)这里我们再执行下测试工程的代码。
在这里插入图片描述
可以看到打印了我们刚刚添加的代码。


http://www.niftyadmin.cn/n/5029644.html

相关文章

【计算机视觉】Image Feature Extractors方法介绍合集(一)

文章目录 一、Convolution二、1x1 Convolution三、Depthwise Convolution四、Pointwise Convolution五、Depthwise Separable Convolution六、Grouped Convolution七、Dilated Convolution八、3D Convolution九、Non-Local Operation十、Deformable Convolution十一、Switchabl…

跨站脚本攻击实验-beef

实验目的 学习XSS工具/手工攻击的原理掌握XSS工具/手工攻击的方法学习防御XSS的方法/原理 实验工具 burpsuite Burp Suite 是用于攻击web 应用程序的集成平台。它包含了许多工具&#xff0c;并为这些工具设计了许多接口。所有的工具都共享一个能处理并显示HTTP 消息&#xff…

Android 原生内置应用配置

原生内置应用是指安装在操作系统中并由操作系统开发商提供的应用程序。这些应用程序通常在设备出厂时就预装在操作系统中,并且无法轻易移除或更换。原生内置应用的功能通常涵盖了设备的基本功能和服务,例如电话、短信、浏览器、相机、联系人等。 在Android操作系统中,一些常…

ffmpeg 开发第一例

站在巨人的肩膀上最简单的基于FFMPEG的封装格式转换器&#xff08;无编解码&#xff09;_mp4remuxer_雷霄骅的博客-CSDN博客 在作者的示例上,修正了在ffmpeg6.0.1上运行,有些方法过时了.没有其它的修改. const char *in_filename "/Users/archko/Movie/健身气功八段锦-…

C++的异常类型与多级catch匹配

try-catch 的用法: try{// 可能抛出异常的语句 }catch(exceptionType variable){// 处理异常的语句 } 我们还遗留下一个问题,就是 catch 关键字后边的exceptionType variable,这节就来详细分析一下。exceptionType是异常类型,它指明了当前的 catch 可以处理什么类型的异常…

1129. 颜色交替的最短路径(leetcode,广搜,可重做)-------------------Java实现

1129. 颜色交替的最短路径&#xff08;leetcode&#xff0c;广搜&#xff0c;可重做&#xff09;-------------------Java实现 题目表述 给定一个整数 n&#xff0c;即有向图中的节点数&#xff0c;其中节点标记为 0 到 n - 1。图中的每条边为红色或者蓝色&#xff0c;并且可…

吃鸡缺少msvcp140.dll怎么办,全面解析msvcp140.dll丢失的解决方法

随着吃鸡游戏的风靡&#xff0c;越来越多的玩家加入了这个竞技世界。然而&#xff0c;许多玩家在玩游戏时遇到了一个令人困扰的问题——缺少 msvcp140.dll 文件。这个问题会导致游戏无法正常运行&#xff0c;让玩家们感到十分沮丧。小编将详细介绍吃鸡缺少 msvcp140.dll 的原因…

Unity 轮播图

核心脚本 using UnityEngine; using UnityEngine.UI; using System.IO; using DG.Tweening;public class ImageSlider : MonoBehaviour {public RawImage mainImage; // 中间显示的主要图片public RawImage leftImage; // 左侧辅助图片public RawImage rightImage; // 右侧辅助…