1.C++OpenCV下载
opencv下载地址:
opencv
2.配置系统环境
1.用户变量Path中添加opencv的bin路径
2.新建用户变量OPENCV,添加opencv\build路径
3.转移至opencv\build\x64\vc15\bin,复制opencv_world340.dll和opencv_world340d.dll文件,粘贴至C:\Windows\SysWOW64文件夹和C:\Windows\System32文件夹下
复制opencv_ffmpeg340_64.dll文件粘贴至C:\Windows\System32文件夹下
4.打开vs,新建C++空项目
4.1.项目–属性–VC++目录–包含目录
添加C:\opencv\build\include;C:\opencv\build\include\opencv;C:\opencv\build\include\opencv2
4.2.项目–属性–VC++目录–库目录
添加C:\opencv\build\x64\vc15\lib
4.3项目–属性–链接器–输入–附加依赖项
添加opencv_world340d.lib
5.项目中新建源文件dllmain.cpp
输入
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/calib3d.hpp>
using namespace std;
using namespace cv;
__declspec(dllexport) int imag() {
Mat img = imread("C:\\Users\\MOVING-RD-03\\Desktop\\C\\blob.jpg", IMREAD_GRAYSCALE);
Ptr<SimpleBlobDetector> detector = SimpleBlobDetector::create();
vector<KeyPoint> keypoints;
detector->detect(img, keypoints);
Mat img_with_keypoints;
drawKeypoints(img, keypoints, img_with_keypoints, Scalar(0, 0, 255), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
imshow("keypoints", img_with_keypoints);
waitKey(0);
return 0;
}
6.项目–属性–常规–配置类型
修改为动态库(.dll)
项目–属性–常规–目标文件扩展名
修改为.dll
7.生成–重新生成解决方案
获得.dll文件和.lib文件
8.新建空项目
将生成的.dll文件和.lib文件复制至新建项目根目录下并在解决方案上右键引用
9.新建一个源文件
代码:
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#pragma comment(lib,"Project3.lib")
extern int imag();
// 静态调用DLL库
void StaticUse()
{
int sum = imag();
/*printf("静态调用,sum = %d\n", sum);*/
}
int main()
{
StaticUse();
}
10.项目–属性–链接器–调试–生成调试信息
修改为生成调试信息(/DEBUG)
11.运行