
C#
HongGan1.0
Keep Learning!
展开
-
C#构造函数问题
1:初始化构造函数 ,不传递任何参数 。 public Gouzao() { InitializeComponent(); }可在写一个传递参数的构造函数 public Gouzao(string name) { InitializeComponent(); }实例化的时候可选择实例化需要的那个构...原创 2018-04-08 09:11:02 · 230 阅读 · 0 评论 -
LeetCode
每处想法之外的错误,都有迹可循。抛出异常为什么?找到在错误在哪里! ==========小甘 ...原创 2018-06-02 10:42:45 · 271 阅读 · 0 评论 -
EmguCV相机校正函数CalibrateCamera
CalibrateCamera函数校正相机畸变,输入三个图像参数,可得到相机内参矩阵(CameraMatrix),畸变矩阵(distortionCoeffs),旋转(rotationMatrix)和平移矩阵(translationMatrix),具体函数如下CalibrateCamera(MCvPoint3D32f[][] objectPoints, // 空间三维坐标点Po...原创 2018-07-01 11:30:59 · 2922 阅读 · 5 评论 -
C#接口和抽象类
1:抽象类是什么? 抽象类是一个物体核心定义,比如Car是抽象基类,其派生类有SUV、Compact、PickUp等。汽车Car也可是派生类,基类是交通 工具Vehicle。但是他们都有一些特定的功能,比如载客,这个功能的实现需要接口IpassengerCarrier实现。2:无法实例化,只能创建对象。直接创建对象不会报错,但需要赋值。创建新的SimpleBlobDe...原创 2018-07-01 11:38:25 · 333 阅读 · 0 评论 -
Emgucv点的数据类型
.net数据类型 Point() point = new Point(x,y); 有序整型坐标点 PointF() pointF = new PointF(x,y); 双精度有序坐标点Emgucv数据类型MCvPoint3D32f TDpoint;三维坐标下的点,类型为浮点型typedef struct CvPoint3D32f{float x; /* x-坐标, 通常基于0 */float ...原创 2018-06-30 13:25:56 · 1288 阅读 · 0 评论 -
C#图像与数组之间的相互转换
一:Bitmap位图转换为byte[]数组 1:进行以下设置:设置项目管理->属性->生成->允许不安全代码 打√即可 //unsafe不安全代码,设置允许不安全代码 private unsafe byte[,] imageToByte(Bitmap bit_Image) { cols = b...原创 2018-07-02 20:40:02 · 5834 阅读 · 0 评论 -
最大类间方差法
最大类间方差法(Otsu)顾名思义该方法利用目标区域与背景区域之间的方差最大的思想,达到分割图像的目的。也就是说,选取最佳阈值T时,目标与背景之间的方差值最大,小于阈值T的区域为D1,大于阈值的区域为D2,如此一来即可将需要的区域区分开来。话不多说,上代码://统计灰度直方图,直接在图像转数组中实现 private unsafe void Image2Byte() {...原创 2018-07-24 17:58:43 · 6578 阅读 · 0 评论 -
C#GET和SET作用
一个A类内部使用私有属性private时,另一个类B想要访问这个类A的属性,只有类A给开个后门才可以了,这时候就需要用到访问器get和set。特别是当A类封装起来的时候,如果没有留个后门,这个类里面的一些私有属性其他类就无法获取。这个后门可以起到一下几个作用 1:对这个属性进行过滤,满足条件的才通过,不满足的则直接过滤2:其他类需要更改名字时,直接在这个门这里更改名字private s...原创 2018-07-07 11:39:24 · 422 阅读 · 0 评论 -
自适应二值化方法之Bernsen法
Bernsen法属于局部阈值法,在光照不均匀的条件下有较好的处理效果。其思想如下: 1:设当前像素为点为P(i,j),计算以P为中心的大小为kernel*kernel窗口内的所有像素的最大值kernelMax与最小值kernelMin,若两者差值相近,该部分属于目标或背景,将该灰度与全局阈值比较,确定是目标还是背景,若二者差值较大则可能属于目标与背景相交的边缘,此时将二者平均值作为Kerne...原创 2018-07-25 16:27:50 · 3324 阅读 · 0 评论 -
图像指针处理调试常见的问题
1:Systen.AccessViolationException {"尝试读取或写入受保护的内存。这通常指示其他内存已损坏。"}思考:指针越界,超出图像数组内存。查找图像指针变化循环,调整指针位置。2:p[0]未将引用对象设置至实例调试:第一轮调试循环没问题,第二轮循环出现该错误,说明中间对象引用错误,重点检查条件改变部分。错误的赋值:Ptr =(byte*)(stride*k+...原创 2018-08-13 15:14:43 · 436 阅读 · 0 评论 -
高斯滤波(Gaussian blur)
高斯滤波法,利用高斯函数计算高斯核,利用高斯核处理图像。高斯函数在滤除高斯噪音以及模糊方面效果较好,实现该函数的核心在于高斯核的计算。高斯函数的一维形式如公式(1)所示: 高斯核的计算: private double[,] Kernerl() { ...原创 2018-08-13 21:42:19 · 2937 阅读 · 4 评论 -
.Net平台科学计算库Math.Net Numerics
C#数值计算实现处理麻烦,如今发现一个库,可以大大提高C#数值能力,为处理数据提供极大便捷,这个库叫Math.NET Numerics。该库旨在为科学,工程和日常使用中的数值计算提供方法和算法。涵盖的主题包括特殊函数,线性代数,概率模型,随机数,插值,积分,回归,优化问题等。Visual studio 2012安装这个库的时候,先更新Nuget,Nuget是C#的程序包管理器,许多扩...原创 2018-08-22 17:33:50 · 4582 阅读 · 0 评论 -
高斯曲线拟合详细步骤
高斯函数: 已知一组数据:Yi={x1,x2,...,xn},需要拟合成高斯函数。 令 F(x)=lnf(x), ,化简可得到式(1),F(x)=lnA-x0^2/2*simga^2+xi*x0/sigma^2-xi^2/2*sigma^2...........................................................................原创 2018-08-24 09:07:33 · 37135 阅读 · 6 评论 -
C#节点链表
自定义节点类ListNodepublic class ListNode{ public int val; public ListNode next; public ListNode(int x) { val = x; }} static void Main(string[] args) { ListNode newL...原创 2018-06-07 22:18:55 · 900 阅读 · 0 评论 -
买卖股票的最佳时机Ⅱ
从特别的例子出发考虑,只想到相隔两个的情况,导致出现错误[6,1,3,2,4,7] 第二天买,第三天卖,第四天买,第六天卖. 最高利润7.该方法为贪心算法。思考下过程...转载 2018-05-28 22:20:17 · 160 阅读 · 0 评论 -
C#混合模式程序集问题
C#出现混合模式程序集的问题是因为2.0版本在4.0时不适用,这时候只需要通过向app.config里的<startup>添加适用2.0版本的配置,即添加红色部分即可。<?xml version="1.0"?><configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> ...原创 2018-03-29 19:41:25 · 745 阅读 · 0 评论 -
C#委托--2档
上回让小弟去砍957,小弟没认出957,任务失败了。这次我得把详细的957资料给他。 //这里我用完成的957信息作为传递参数。其实将957的名字作为传递参数也有好处,可以让某个小弟知道全部,某个小弟不知道全部信息,这样就不用担心信息泄漏了。//传递的方法是继承自EventArgs,可以通过Invoke(传递的参数)触发事件。 public delegate void XXEventHand...原创 2018-03-10 15:27:03 · 197 阅读 · 0 评论 -
C#注册表初级操作
注册表就是用来保存电脑或者定制软件等的主要信息,包括安装信息,设置硬件属性信息。它有着如同树状图一样的结构,最顶层的根键,根键下有多个子健,每个子健下也有可能有多个子健,而子健又包含有键值项和键值。RegistryKey顶级节点,也就是根键 Registry也就是子健 Public void RegistryTest(){ RegistryKey registry = Registry.L...原创 2018-03-09 14:32:25 · 291 阅读 · 0 评论 -
C#委托--1档
委托函数说白了就是委托函数出个嘴,让别人完成自己想干的活。因此,委托函数有着自己完整的结构。 我叫XX,是一个黑帮帮主,手下小弟无数。今天想让小弟二狗去帮我砍一个人,我只需要告诉二狗这个人的名字,他就能帮我解决掉这个人。 public delegate void XXEventHandler(int A);//EventHandler是委托的命名规则,我在帮派里叫XX pu...原创 2018-03-06 13:20:14 · 209 阅读 · 0 评论 -
C#中 paint()与Onpaint()的区别
Paint()和OnPaint()事件是用来重绘一:二者区别1.OnPaint方法是对一个控件来说的;而Paint事件是对一个控件对象来说的。它们中前者相当于是类的一个成员函数,而后者相当于是类的一个函数指针类型的变量(会因对象的不同而不同)。 2.OnPaint方法引发Paint事件,所以重写OnPaint方法,一定要调用base.OnPaint,否则就不会引发Paint事件了。OnPai...转载 2018-04-16 08:13:51 · 2790 阅读 · 0 评论 -
Grab调试之CreateNewObject()
运行顺序:一:加载配置文件1:程序从InitiallizeComponent()进入,初始化各原始参数。2:Form_Load()窗体加载调用 InitServer()3:SapManager.GetserverCount() 不管设备是否连接,返回2。SapManager.GetserverName(i,Acq),总是得到三个值:System,Xtium-CL_MX4_1,CameraLink_...原创 2018-04-17 21:16:29 · 1148 阅读 · 0 评论 -
Sapera开发笔记
一:SapManager类SapManager.GetServerName(i):返回0 1 2 。其中0是System ,1是相机名称(Acq服务设备)即我需要的设备名称 2是面阵相机SapManager.GetResourceCount(int serverIndex, SapManager.ResourceType) :返回满足相机设备的像素格式 int serverInde...原创 2018-04-17 21:16:19 · 3315 阅读 · 0 评论 -
Sap开发之相机信号状态获取
一:思路 1:利用构建完成的Createnewobject(); 2:采集一次数据,不进行保存和相关处理 3:通过bool signalDetect=Acquisiton.IsSignalActive(SapAcquisiton.AcqSignalStatus.LineVaidPresent) //判断设备是否...原创 2018-04-20 21:52:48 · 700 阅读 · 0 评论 -
C#类的多态
虚方法实现多态class Program { static void Main(string[] args) { ShaGou jilei = new ShaGou(); GouZaizi zilei = new GouZaizi(); ShaGou[] goulei = { j...转载 2018-07-01 11:39:29 · 255 阅读 · 0 评论 -
EmguCv几种图像打开方法和转换
EmguCv主要有3种打开图片的方式。一:Mat类实现 Mat类主要功能是存储图片数据结构,包括数据头和矩阵信息,主要的内存占据是图像信息矩阵。处理图像的时候可只复制数据头,可减少不必要的内存开销。按照需求针对图片的某个像素处理。能够得到图片的宽度(height),长度(weight),行(rows)列(cols)数,色彩类型(rgb,gray),通道数(channel)等各种...原创 2018-05-13 11:20:19 · 7604 阅读 · 0 评论 -
C#的文件目录及文件操作总结
一:文件目录操作文件操作总是和离不开文件夹目录,在对文件处理之前,让我们先了解下文件目录的几种操作方法。1:无中生有:Directory以及DirectoryInfo 创建,打开,移动或修改文件目录。与OpenFileDialog的区别是不会跳出目录选项框。与Path的区别是Directory可直接修改,创建目录,而path只对路径字符串修改。主要用法: string[] path = Di...原创 2018-04-14 21:04:56 · 1671 阅读 · 0 评论 -
Emgucv之安装
一:安装,引用1:进入官网,选择对应的版本,注意版本能配合CS,下载.exe文件。2:下载后双击,选择文件目录进行安装。3:安装完成后打开bin文件夹,下面会有x86和x64两个文件夹,拷贝目录地址。4:修改环境变量,在系统变量下添加path,安装目录的bin和相应的系统类型地址添加进去,重启电脑。5:打开C#,添加bin目录下的.dll引用6:到选择工具箱,浏览添加:Emgu.CV.UI.dll...原创 2018-05-07 09:12:30 · 569 阅读 · 0 评论 -
C#两数组的交集
题目:Given two arrays, write a function to compute their intersection.给出两个数组,找出他们的交集Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].Note:Each element in the result must be unique.每个数组的结果必...原创 2018-06-03 14:33:27 · 1453 阅读 · 0 评论 -
SharpGL学习基础篇--坐标系中的三角形
1:opengGL做立体图,是在三维坐标系中,多次试验,弄清三维坐标系方向,画三角形的原理及成像机制。代码解释一波。 //实例化OpenGL对象 OpenGL gl = new OpenGL(); //清空Depth和Color缓存 gl.Clear(OpenGL.GL_DEPTH...原创 2018-09-01 22:03:46 · 1878 阅读 · 0 评论