资源简介
代码+文档说明,详细介绍如何生成c++的dll,以及c#调用如何调用,包括各种数据的转换,特别是openCV图片数据格式的传入输出转换。
代码片段和文件信息
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
using System.IO;
using Dll_Interface;
namespace cSharp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void loadImg_Click(object sender EventArgs e)
{
try
{
/*注意:若读入的图片行位数byte(即行像素点*通道数)不是4的倍数(工业相机一般是),
Bitmap会自动补齐此时容易造成后面Bitmap与byte[]之间互转后图片出错(该问题目前未解决)*/
Bitmap srcImg = new Bitmap(@“5.jpg“);
#region
//byte[] img = new byte[srcImg.Width * srcImg.Height];
//for (int yy = 0; yy < srcImg.Height; yy++)
//{
// for (int xx = 0; xx < srcImg.Width; xx++)
// {
// img[yy * srcImg.Width + xx] = srcImg.GetPixel(xx yy).R;
// }
//}
#endregion
byte[] img = null;
bitmapToByte(srcImg ref img);
#region
dllInterface IFclass = new dllInterface();
/********************结构体示例*********************/
Ipoint p1 p2 p3;
p1 = new Ipoint();
p2 = new Ipoint();
p3 = new Ipoint();
p1.X = 1; p1.Y = 2;
p2.X = 3; p2.Y = 4;
IFclass.IAddPoints(p1 p2 ref p3);
label1.Text = “add x: “ + (p3.X).ToString() + “\n“ + “add y: “ + (p3.Y).ToString();
/***************vector示例*************************/
int numEle = 3;
Ipoint[] retVce = new Ipoint[numEle];
Ipoint[] vec1 = new Ipoint[numEle];
Ipoint[] vec2 = new Ipoint[numEle];
Ipoint[] VceResult = new Ipoint[numEle];
vec1[0] = p1; vec1[1] = p2; vec1[2] = p3;
vec2[0] = p1; vec2[1] = p2; vec2[2] = p3;
retVce = IFclass.vecTest(vec1 vec2 numEle ref VceResult);
#endregion
/***************图像示例*************************/
int Depth = System.Drawing.Bitmap.GetPixelFormatSize(srcImg.PixelFormat);//目前仅支持24位或8位
int channel = Depth / 8;
bool isColor = false;
if (channel == 3)
{
isColor = true;
}
byte[] imgFilter = new byte[srcImg.Width * srcImg.Height * channel];
IFclass.IMeamImage(img srcImg.Height srcImg.Width ref imgFilter isColor);
Bitmap Image1 = CovertToBitmap(imgFilter srcImg.Width srcImg.Height isColor);
pictureBox1.Image = Image1;
}
catch (Exception ex)
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-09 10:04 csCallCplus\
目录 0 2018-11-09 09:58 csCallCplus\.vs\
目录 0 2018-11-09 09:58 csCallCplus\.vs\csCallCplus\
目录 0 2018-11-09 09:58 csCallCplus\.vs\csCallCplus\v14\
文件 73728 2018-11-09 10:04 csCallCplus\.vs\csCallCplus\v14\.suo
目录 0 2018-11-09 09:58 csCallCplus\DllTest\
文件 702 2018-10-18 16:45 csCallCplus\DllTest\DllTest.cpp
文件 5887 2018-09-13 15:35 csCallCplus\DllTest\DllTest.vcxproj
文件 948 2018-09-12 11:07 csCallCplus\DllTest\DllTest.vcxproj.filters
目录 0 2018-11-09 09:58 csCallCplus\DllTest\x64\
目录 0 2018-11-09 09:58 csCallCplus\DllTest\x64\Debug\
文件 1496 2018-10-18 16:45 csCallCplus\DllTest\x64\Debug\DllTest.Build.CppClean.log
文件 1095 2018-10-18 16:45 csCallCplus\DllTest\x64\Debug\DllTest.log
文件 136073 2018-10-18 16:45 csCallCplus\DllTest\x64\Debug\DllTest.obj
目录 0 2018-11-09 09:58 csCallCplus\DllTest\x64\Debug\DllTest.tlog\
文件 526 2018-10-18 16:45 csCallCplus\DllTest\x64\Debug\DllTest.tlog\CL.command.1.tlog
文件 39038 2018-10-18 16:45 csCallCplus\DllTest\x64\Debug\DllTest.tlog\CL.read.1.tlog
文件 488 2018-10-18 16:45 csCallCplus\DllTest\x64\Debug\DllTest.tlog\CL.write.1.tlog
文件 209 2018-10-18 16:45 csCallCplus\DllTest\x64\Debug\DllTest.tlog\DllTest.lastbuildstate
文件 1458 2018-10-18 16:45 csCallCplus\DllTest\x64\Debug\DllTest.tlog\li
文件 3476 2018-10-18 16:45 csCallCplus\DllTest\x64\Debug\DllTest.tlog\li
文件 578 2018-10-18 16:45 csCallCplus\DllTest\x64\Debug\DllTest.tlog\li
文件 672 2018-11-09 09:57 csCallCplus\DllTest\x64\Debug\DllTest.vcxprojResolveAssemblyReference.cache
文件 1100800 2018-10-18 16:45 csCallCplus\DllTest\x64\Debug\vc140.idb
文件 1183744 2018-10-18 16:45 csCallCplus\DllTest\x64\Debug\vc140.pdb
目录 0 2018-11-09 09:58 csCallCplus\DllTest\x64\Release\
文件 1048 2018-09-13 14:05 csCallCplus\DllTest\x64\Release\DllTest.Build.CppClean.log
文件 1233 2018-09-13 14:05 csCallCplus\DllTest\x64\Release\DllTest.log
文件 1840239 2018-09-13 14:05 csCallCplus\DllTest\x64\Release\DllTest.obj
目录 0 2018-11-09 09:58 csCallCplus\DllTest\x64\Release\DllTest.tlog\
文件 546 2018-09-13 14:05 csCallCplus\DllTest\x64\Release\DllTest.tlog\CL.command.1.tlog
............此处省略219个文件信息
- 上一篇:明解C语言入门与中级篇.rar
- 下一篇:利用二叉树结构实现赫夫曼编/解码器。
相关资源
- 颜色识别形状识别STM103嵌入式代码
- c#与西门子1500通讯
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- 基于opencv的模板匹配代码
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
- c++ 虚拟摄像头
- hook,捕获所有案件,查找所有窗口,
- C语言课设计算器
- c++ 简易贪吃蛇源码
- 高精度加法(c++代码)
- C++调用百度地图案例
- 北京化工大学计算方法(C/C++)讲义
- 基于VC++的SolidWorks二次开发SolidWorks
- c++ 模拟鼠标按键
- OFD编辑器
- opencv图片扫描以及校正
- Beginning C++17 From Novice to Professional
- C++ STL实现
- opencv手部轮廓识别以及轨迹识别
- 百度C++编码规范
- C++ sql2008 WebServer通讯.docx
- c++ 定时关机程序源码
- opencv2 3D标定.cpp
- 基于VSCode和CMake实现C++开发
- c++语法查询工具
评论
共有 条评论