vs2015+.dll+opencv简单实例(1:创建)

一个.dll制作项目名字为:ConsoleApplication5

文件->新建->项目->visual c++->win32控制台->下一步->选.dll和与预编译头->finish,解决方案资源管理器里将得到


点击ConsoleApplication5右键,添加,新建项目,添加一个与项目名相同的.h文件


ConsoleApplication5.h里的内容为:


ConsoleApplication5.h加入你要让别人使用的函数名,并且函数名前加extern "C" _declspec(dllexport),例如:

ConsoleApplication5.cpp加入这个函数的实现。

可以再加一个.h文件,只要在.cpp里包含就可以。我是新建了一个yyy.h,在里面定义了一个类,和类的一些方法。在生成.dll之后,可以直接调用这个类。

这样都结束之后,可以直接点击项目,右键,重新生成,在输出窗口中会出现,

ConsoleApplication1.vcxproj -> E:\graduate design\Detection2\x64\Release\ConsoleApplication1.dll

这样的字样,这就是你得.dll生成之后的地方。到那里找生成的.dll

代码:

//"ConsoleApplication5.h"

#pragma once
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
extern "C" _declspec(dllexport) void test01(string g);


//"yyy.h"

#pragma once


extern "C" _declspec(dllexport) class jjkk
{
public:
jjkk();
jjkk(int k)
{
k = 0;
}
int pp(int a,int b);
~jjkk();
private:
int num;
};


jjkk::jjkk()
{
}
int jjkk::pp(int a,int b)
{
return a + b;
}
jjkk::~jjkk()
{}


//"ConsoleApplication5.cpp"



#include "stdafx.h"
#include "yyy.h"


#include "ConsoleApplication1.h"
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;


#include <iostream>
#include <sstream>
#include <string>
using namespace std;




extern "C" _declspec(dllexport) void test01(string g)
{
Mat girl = imread(g); //载入图像到Mat
namedWindow("【1】动漫图"); //创建一个名为 "【1】动漫图"的窗口  
imshow("【1】动漫图", girl);//显示名为 "【1】动漫图"的窗口  


   //-----------------------------------【二、初级图像混合】--------------------------------------
   // 描述:二、初级图像混合
   //--------------------------------------------------------------------------------------------------
   //载入图片
Mat image = imread("dota.jpg", 199);
Mat logo = imread("dota_logo.jpg");


//载入后先显示
namedWindow("【2】原画图");
imshow("【2】原画图", image);


namedWindow("【3】logo图");
imshow("【3】logo图", logo);


// 定义一个Mat类型,用于存放,图像的ROI
Mat imageROI;
//方法一
imageROI = image(Rect(800, 350, logo.cols, logo.rows));
//方法二
//imageROI= image(Range(350,350+logo.rows),Range(800,800+logo.cols));


// 将logo加到原图上
addWeighted(imageROI, 0.5, logo, 0.3, 0., imageROI);


//显示结果
namedWindow("【4】原画+logo图");
imshow("【4】原画+logo图", image);


//-----------------------------------【三、图像的输出】--------------------------------------
// 描述:将一个Mat图像输出到图像文件
//-----------------------------------------------------------------------------------------------
//输出一张jpg图片到工程目录下
imwrite("由imwrite生成的图片.jpg", image);
jjkk p;
cout<<p.pp(3, 4);


waitKey();
}




  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值