自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 资源 (2)
  • 收藏
  • 关注

原创 DP1.4接口换新显示器开机无Logo、进主板BIOS黑屏解决方案

解决更换高档显示器后,在使用旧显卡的前提下,插DP1.4口开机无Logo、进BIOS黑屏、进系统黑屏的问题。

2022-11-06 01:36:36 5307 1

原创 Halcon_灰度直方图和特征直方图的使用

1、灰度直方图在进行阈值分割的时候往往要确定一定的灰度范围,把自己想要的部分分割出来,这时就需要借助灰度直方图(如下图所示)。拖拉图中1处确定最小灰度值,拖拉图中2处确定最大灰度值,区间内的范围就是在图像上显示的部分,图中4处可选择显示部分的颜色(即感兴趣区域的颜色),5处确定的是显示部分是否填充(fill:代表区域内填充,margin:代表区域轮廓)。当选出感兴趣区域后可点击3处插入代码即可生成阈值分割函数。灰度直方图还有另一个功能:图像对比度的调整要想调整图像对比度,打开灰度直方图后,在图中

2021-07-06 18:59:24 1615

原创 TCP_数据报文首部格式

TCP报文首部格式字段说明源/目标端口分别写入源端口号和目标端口号序列号也就是我们tcp三次握手中的seq,表示的是我们tcp数据段发送的第一个字节的序号,范围[0,2^32 - 1],例如,我们的seq = 201,携带的数据有100,那么最后一个字节的序号就为300,那么下一个报文段就应该从301开始确认序列号也就是ack(假设为y),它的值是seq+1,表示的意义是y之前的数据我都收到了,下一个我期望收到的数据是y.也就是我回过去的seq = y首部长度

2021-06-22 14:57:39 307

原创 IPv4_数据报文首部格式

IPv4数据报首部格式IPv4数据报首部分为固定部分(20字节)与可变部分(0~40字节)用WireShark抓包的IPv4协议中报文首部格式一一对应:字段说明版本号目前广泛使用的ip协议版本为4,所以对应的版本号为“0100”首部长度报文首部的长度(20~60字节),最短为0101/最长为1111区分服务利用该字段的不同数值可提供不同等级的服务质量(仅在区分服务时该字段起效)总长度IP数据段的总长度,首部与数据部分的长度和标识属于同一数据报中

2021-06-22 14:41:20 1497 1

原创 c# DataTable

DataTableC#_DataTable简介构造函数常用属性常用方法(冰山一角)DataTable使用技巧创建一个DataTable给DataTable添加列给DataTable添加行根据数据筛选行复制DataTable操作行转为字符过滤DataTable排序DataGridView绑定DataTable判断一个字符串是否为DataTable的列名数据表转换为XML和XML转换为数据表Evaluate another DataTable's row to current Datatable所有事件C#_

2021-06-15 15:56:21 320

原创 图像低通滤波

1、图像强度值变化慢的区域只包含低频率,而图像强度变化快的区域产生高频率。2、图象是二维的,因此频率分为两种,及垂直频率(垂直方向的变化)和水平频域(水平方向的变化)。低通滤波器作用:消除图像中的高频部分,目的是减少图像变化的幅度。1、cv::blur 归一化框过滤器,他将每个像素的值替换成该像素邻域的平均值(邻域是矩形的),从而使图像更加平滑。 2、cv::GaussianBlur高斯滤波让邻域内较近的像素具更高的重要度。即计算加权平均值,即较近的像素比较远的像素具...

2021-06-08 13:49:26 2981

原创 c# BindingSource的简单应用

BindingSource充当一个在数据与控件之间的中间层的角色,将数据与控件解耦。????关于API介绍可以点击我进行查看????简单示例如下:///*******UI层*******/////声明BindingSource ,可以给他放到DAL层//BindingSource可以用作数据容器,即便它没有绑定到数据源上,它内部有一个可以容纳数据的list。private BindingSource source = new BindingSource();//添加priva

2021-06-07 14:38:54 1062

原创 Thread\Threading.Timer\Task中ShowDialog()方法报错:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式”

出错环境:1、在Thread线程中,调用ShowDialog()方法2、在线程定时器中,调用ShowDialog()方法3、在Task任务中调用ShowDialog()方法出错异常:当执行到.ShowDialog()方法的时候,就会出现如下错误提示:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式,请确保您的Main函数带有STAThreadAttribute标记。”出错原因:1、首先先确认一下程序主入口是否有STAThreadAttrib..

2021-05-29 12:07:36 1961 5

原创 创建组件“XX”失败,错误信息为:“SystemUnauthorizedAccessException”:对路径“...”的访问被拒绝

创建组件“XX”失败,错误信息为:“SystemUnauthorizedAccessException”:对路径“...”的访问被拒绝解决方案:管理员身份打开1、以管理员身份打开visual studio2、再打开报上类错误的项目3、刚刚的问题迎刃而解...

2021-05-23 12:35:48 957

原创 OpenCVSharp_保存浮点型Mat数据

OpenCVSharp提供了Mat的序列化和反序列化方法-----FileStorage类直接上干货:保存浮点型Mat:Mat HomMat2dData = new Mat(2, 3, MatType.CV_64F);//模拟浮点型Mat数据HomMat2dData.Set<double>(0, 0, 0.1124);HomMat2dData.Set<double>(0, 1, -0.2211);HomMat2dData.Set<double>(0,

2021-05-19 15:46:54 956

原创 c#_where关键字

说明:where关键字用于约束泛型!举个例子:public class BusinessBaseBLL<T, S> : BaseBLL<T, S> where T : new() where S : BusinessDAL<T>, new()解释:一、该例中BaseBLL<T, S>是BusinessBaseBLL<T, S>的基类二、BaseBLL<T, S> where T : new()中的w...

2021-05-18 20:18:41 265

原创 OpenCVSharp::FindContours 错误:“total()==0||data!=NULL“

我的opencvsharp是从visual studio 2019中NuGet程序包里下载的今天我把程序从一个旧项目搬到一个新项目中,调试时报了一个错:原因是由于我新项目中一开始安装了高版本的opencvsharp,然后搬运代码的时候我想和旧项目的版本对应起来,所以我对项目的opencvsharp做了降版本处理。然后今天整合好代码之后发现CV2.FindContours算子报错。找了一天发现是版本问题,调回去就解决了!总之:如果你项目需要安装opencvsharp请谨慎选择版本,安装好后不要

2021-05-18 15:26:13 924

原创 c#_HashSet

HashSet介绍HashSet为System.Collections.Generic命名空间下的HashSet<T>类,它具有无序性、唯一性。由于他的特性所以他不能做排序操作、不能像数组那样使用索引(无法使用for循环(foreach可以))、不能有重复元素。注意:HashSet 可以存放单个的 null 值;如果你向HashSet中添加重复元素HashSet会忽略此次操作。HashSet应用1、根据HashSet的构造函数重载,声明HashSet实例时构造函数实参可...

2021-05-15 12:54:28 2973 1

原创 c#_序列化与反序列化的应用

本篇博客不讲理论!如果想看理论这里附上三篇博客:Json:https://blog.csdn.net/qq_48705696/article/details/116536267?spm=1001.2014.3001.5501XML:https://blog.csdn.net/qq_48705696/article/details/115301270?spm=1001.2014.3001.5501序列化与反序列化:https://www.cnblogs.com/yzenet/p/3622833

2021-05-14 13:58:41 149

原创 opencvsharp_基于轮廓的形状匹配中匹配坐标与旋转角度

本篇博客不讲理论! 需要看理论的这里附上三个博客:①一步一步实现多尺度多角度的形状匹配算法(C++版本)②图像的矩,以及利用矩求图像的重心,方向③OpenCV学习(十九) :图像的矩:moments(),HuMoments()直接上干货! 以下代码为定位零件的像素位置,旋转角度 emmmmm其他没有……我们拿着模板(轮廓)去匹配的时候,找到的目标像素坐标为:首先用Cv2.MatchShapes去筛选图像中的轮廓,然后筛选好的轮廓如果...

2021-05-12 21:33:40 6467 4

原创 c#_Json

一、Json的自我介绍JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。可读性和XML的可读性可谓不相上下,也有着XML无法比拟的可扩展性。1、格式:{}为对象、[]为数组 1、对象是一个无序的“‘名称/值’对”集合。 例子:表示人的一个对象: {"姓名" : "大憨","年龄" : 24} 2、数组是值(value)的有序集合。 例子:一组学生 {"学生" :[{"姓名" : "小...

2021-05-08 19:28:15 234

原创 c#_goto语句

教科书上都这样提及:应避免使用goto语句!但是在Debug的时候,使用goto语句确实很方便,goto语句的跳转影响程序的结构,也确实容易踩坑。我认为适当使用、适当选择就好,不必太拘谨于教条,小白还是慎用那么goto语句是什么意思呢?goto 的意思是跳转到的意思,而且是无条件跳转,那么跳转到哪里呢,当然是跳转到标识符语句的位置使用起来也很简单,举个小栗子:static void Main(string[] args){ goto loop; loop.

2021-05-08 17:44:01 1090

原创 c#_TcpListener&TcpClient

本篇博客示例适用于上位机与机器人之间的通讯① 首先先介绍一下TcpClient和TcpListener: 1、TcpClient 类 为 TCP 网络服务提供客户端连接。TcpClient 类提供了一些简单的方法,用于在同步阻塞模式下通过网络来连接、发送和接收流数据。为使 TcpClient 连接并交换数据,使用 TCP ProtocolType 创建的 TcpListener 或 Socket 必须侦听是否有传入的连接请求。可以使用下面两种方法之一连接到该侦听器:创建一...

2021-05-07 20:42:24 2375

原创 c#_Task用法总结

目录Task与ThreadTask的用法1、创建任务2、async/await的实现方式:3、task可以同步执行吗?4、Task的Wait、WaitAny、WaitAll方法介绍5、释放TaskTask与ThreadTask是架构在Thread之上的,也就是说任务最终还是要抛给线程去执行。 Task跟Thread不是一对一的关系,比如开10个任务并不是说会开10个线程,这一点任务有点类似线程池,但是任务相比线程池有很小的开销和精确的控制。ThreadPool相比..

2021-04-22 15:27:08 6328

原创 winform父窗体实现多个子窗体只能显示一个

一、前言 当一个父窗体中包含多个动能的时候可能会存在很多子窗体,那么当每个都去打开的时候就会都显示在父窗体上,这样给用户的视觉肯定很不舒服。所以当出现这种情况的时候肯定也会有解决方法,以下就是一种解决方法,供大家参考。二、代码1.父窗体 /// <summary> /// 使父窗体每次只能显示一个子窗体 /// </summary> /// <param name="子窗体名称">...

2021-04-21 20:00:59 1346

原创 winform中构造函数与Form_Load

不都是用来初始化form中的组件么?public Form()所谓的构造函数。Form_Load所谓的窗体加载函数完全两码事!WinForm 中的 Form_Load函数和他的构造函数 public Form()有区别:(1)public Form():程序入口,它的InitializeComponent()做了许多初始化的工作,所以Load才能成为一个事件,InitializeComponent为你的程序作了必要的初始化工作(2) Form_Load:装载窗口事件, 是窗体启动时触发的事件.

2021-04-21 12:57:07 3590

原创 c#_Func和Action委托简介

Action的用法我们定义没有返回值没有参数的委托这样的: private delegate void EatRice(); //定义一个eatrice委托类型写一个无返回值无参数的函数:private static void Eat(){ Console.WriteLine("我吃饭了");}然后声明并调用:static void Main(string[] args){ EatRice eatRice =Eat;//实例化委托类型 eatR...

2021-04-21 12:52:37 165

原创 c#_将文件导入到工程目录下

Demo介绍我先说明我这段Demo写出来的初衷是用于我们项目的一个要求:甲方要求:客户只需要把文件丢进一个文件夹然后,再扫描该文件夹下所有后缀为.dxf的文件用于后续操作;乙方操作:我的解决方案就是选中要导入的文件,复制进对应项目的工程目录下(已有的覆盖,没有的新添),然后读取出预先设置好的工程目录里所有带.dxf后缀的文件。代码部分OpenFileDialog dlg = new OpenFileDialog();dlg.Multiselect = true;dlg.Defaul

2021-04-16 17:20:54 913

原创 c# Lambda表达式

什么是Lambda表达式?Lambda表达式其实就是一个用来代替委托实例的未命名的方法; 编译器会把Lambda表达式转化为以下二者之一: 一个委托实例。 一个表达式树,他表示了可遍历的对象模型中Lambda表达式里面的代码。它允许Lambda表达式延迟到运行时再被解释。 例子:每个Lambda表达式的参数对应委托的参数 表达式的类型对应委托的返回值类型delegate int Transformer(int i);//委托变量 = 方法的参数 => 方法的返回值...

2021-04-11 15:13:50 206

原创 金属表面划痕检测Halcon

当一个函数f其实部为偶函数,虚部为奇函数时,此函数就为共轭对称函数,即f(x)的共轭等于f(-x)

2021-04-07 16:20:14 4690

原创 DateGridView的外观美化

众嗦粥汁,DateGridView控件的外观奇丑无比,那么这篇博客对与该控件的外观问题进行美化。再看看好看的表格长啥样,虽然不能做到一样,但也要求形似!,本博客就依照这个格式进行修改:DateGridView控件默认字体颜色是白色,默认背景颜色也是白色,用户需要注意一下这个字体颜色的设置首先,上来第一列的小黑点看起来很难看,并且虽然控件Dock了但是里面的列却未填满整个控件 那个小黑点是行标题,如果不用的话就更改属性中的这个 列没有填满整个控件那就把编辑列中的布局属性...

2021-04-05 12:25:24 4548

原创 c#与halcon模板匹配控制EPSON四轴机器人输出旋转角度

首先c#与halcon联合编程的方式在之前的博客有写到,并且halcon的find_shape_model算子也有提及,这里附上两个超链接不再赘述。这篇博客主要讲讲这个find_shpe_model算子输出的弧度到底是怎样运算的,他是怎样个运算机制。就拿以上这几张图片来说明吧首先,你创建基于形状的模板的时候,它是以水平中线作为基准然后,再根据匹配到的图形相对于以上图为参考来计算旋转的弧度就像这样,(图中红箭头为创建模板时的参照方向,蓝色箭头为水平中线)计算输出旋转的弧度

2021-04-05 11:11:10 1589 1

原创 c#_可扩展标记语言XML

先说一下XML的文档格式:1、文档声明 文档中必须有一个根标签 <?xml version="1.0"?>2、元素(根元素/顶层元素) = 标签 <student> </student> 结束的时候加一个反斜杠3、属性 <name>小明</name>需要注意编码规则UTF-8 属性也可以像下面这样写: <student name="小明"> ...

2021-03-29 16:30:02 162

原创 c#_关键字base

使用base关键字可以帮助子类显示地调用父类的构造函数。对于这点,我们可以使用前文所给的实例代码(有裁剪)来进行说明,具体代码如下://父亲类public class FatherClass{ public FatherClass() { Console.WriteLine("FatherClass Constructor:FatherClass()"); } public FatherClass(string from) { ...

2021-03-29 08:15:25 196

原创 c#_winform打开关闭时淡入淡出

淡入淡出可以通过对Form的Opacity属性进行设置实现:先将Form的Formborderstyle属性设置为None //淡入 private void Form1_Load(object sender, EventArgs e) { for (Double opa = 0; Math.Abs(opa - 1) > 1E-06; opa += 0.05) { this...

2021-03-16 08:46:51 202

原创 算子find_shpe_model参数详解

find_shape_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness : Row, Column, Angle, Score)Image :你所要搜索兴趣物的图象(图像路径是文件的全路径,用海康威视拍摄出来的图像后缀为.bmp) ModelID : 模板句柄 AngleStart :搜索时的起始角度(旋转模板);An.

2021-03-15 20:24:49 1457

原创 ASCⅡ表

ASCII对照表 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 0 NUT 32 (space) 64 @ 96 、 1 SOH 33 ! 65 A 97 a 2 STX 34 " 66 B 98 b 3 ETX 35 # 67 C 99

2021-02-02 20:25:09 202 1

原创 c#_Math.Sign()

一、返回值Math.Sign()有五种返回值1) 1 // 正数2)-1 // 负数3)0 // 正04)-0 // 负05)NaN // 非数字注意:传递给该函数的参数会被隐式转换为数字类型。二、Math.sign() 与 比较运算符if (num > 0) {} else {}if (Math.sign(num) > 0) {} else {}实际上,如果只是单纯获取布尔状态,用比较运算符即可。Math.sign()的闪光点在于...

2021-02-01 19:04:18 1409

原创 c#,Halcon_HObject双向转换HImage

HTuple pointer, type, width, height;//下面这个语句的PNG即为HObject类型HOperatorSet.GetImagePointer1(PNG, out pointer, out type, out width, out height);HImage image = new HImage(); //这样HObject就转成HImage了image.GenImage1(type, width, height, pointer);...

2021-01-29 22:11:52 3319

原创 ListView与DateGridView

一、ListViewlistview用于显示信息是非常好用的,但是不能修改内容。如果你是想要修改内容那请看dategridviewlistview有五种视图模式,想把信息像Excel一样展示出来就在属性里的View设成Details点击“编辑列”,按照需求写好列头int count = listView1.Items.Count + 1;ListViewItem lv = new ListViewItem();lv.Text = count.ToString();//每行行

2021-01-28 15:46:51 502

原创 halcon与c#联合编程的方法

一、VS引用halcondotnet.dll后直接编程但是如果你不是大牛会存在非常严重的内存泄漏问题,极其不推荐这样做。二、用Halcon编好程序后导成C#然后导出.cs为后缀的c#程序,主函数在Action方法里。但是这种方法最然简便,但是偶尔也会在程序编译正确的情况下运行报错。三、用Halcon引擎虽然较上面的办法速度可能相对慢一些,不过稳定性大大提升而且运行速度也还可以。首先先引用这两样东西,它在Halcon安装目录下。例如:E:\Halcon12\bin\dotnet

2021-01-17 18:07:06 2619 2

原创 海康威视连续采图设置ROI局部显示_c#

为啥要设置ROI来局部显示呢?是因为当生产线速度很快时,每张图片只给几毫秒的处理时间,如果把整张图片都传输给计算机,那么时间会浪费在数据传输上,而画一个ROI来减小图像尺寸从而减小传输数据的大小,就可以提升数据的处理速度来适应快速的生产线节拍首先,先从连续采图的图像中单步采集出一张图片来设置ROI区域然后,重启相机最后,绘制好ROI区域(X、Y的偏移量+roi图像的宽与高),把参数写进相机,然后再连续采图private uint imgWidth, imgHeight, offse

2021-01-13 19:58:46 3999 4

原创 海康威视连续采图与单步采图_c#

首先引用海康威视的MVS中的MvCameraControl.Net然后 using MvCamCtrl.NET;查找设备程序:其中的ComboBox cbDeviceList是显示设备序列号的下拉列表public void DeviceListAcq(ComboBox cbDeviceList) { int nRet; // ch:创建设备列表 en:Create Device List Syste

2021-01-11 18:31:59 3775 2

原创 c#_未将对象引用设置到对象的实例

不知道你们有没有遇到过类似的情况,在用户控件里一顿撤销之后发现程序崩了,报下面的错误:在排除关键字new使用错误的情况以外,你先检查一下是不是用户控件的构造函数引用少了一个,像下图这样:构造函数的引用变成了0个解决办法:在解决方案中打开Form1.Designer.cs然后在这个主窗体的构造函数下,把因未知情况而误删的用户控件重新实例化一下,即可解决问题。其他情况的未将对象引用设置到对象的实例,下面这篇博客或许对你有帮助:https://blog.csdn.net

2021-01-07 18:22:19 11506 2

转载 opencv Mat类

本博客转载于这里!Mat 基础图片在计算机中的本质就是一个数组。其中 Mat 就是在 OpenCV 中图像的表示形式,因此简单介绍 Mat 中一些常用的基础知识。其中 Mat 类中有一些基本属性:cols :矩阵列数rows:矩阵行数channels:通道数type:数据类型total:矩阵总元素数data:指向矩阵数据块的指针其中 Mat 排列方式如下:通道顺序为 BGR参考:https://blog.csdn.net/x199699/article/deta

2020-12-22 20:04:36 380

childFrmText.rar

效仿多数软件的操作习惯,在父窗体点击按钮打开子窗体,并且该子窗体上嵌入了不同的子窗体,通过点击该子窗体上的不同按键实现设置界面的切换,并且关闭子窗体时不释放资源。

2021-04-25

demoProg_VMM2.2.rar

能实现GDI+画线、圆等图形,并能实现拾取图元的功能,初步实现了测量圆心距的功能,如有感兴趣的自行下载,研究与完善!

2020-09-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除