• 大小: 61.44MB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2022-01-06
  • 语言: C/C++
  • 标签: c#  c+  opencv  

资源简介

代码+文档说明,详细介绍如何生成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\link.command.1.tlog
     文件        3476  2018-10-18 16:45  csCallCplus\DllTest\x64\Debug\DllTest.tlog\link.read.1.tlog
     文件         578  2018-10-18 16:45  csCallCplus\DllTest\x64\Debug\DllTest.tlog\link.write.1.tlog
     文件         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个文件信息

评论

共有 条评论