自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

转载 工业互联网(十四)——相机标定(Camera calibration)原理、步骤

转载:相机标定相机标定(Camera calibration)原理、步骤工业相机标定相关知识整理相机标定——标定图片拍摄规范相机标定中部分疑问和注意事项张正友相机标定Opencv实现以及标定流程&&标定结果评价&&图像矫正流程解析(附标定程序和棋盘图)世界坐标与像素坐标的相互转换张正友相机标定程序实现单目相机提高标定精度的经验(转载)计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换(转载)内参、外参、畸变参数三种参数与相

2022-02-13 20:11:45 3047

转载 【CSDN】文章撰写方法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2022-02-13 20:06:40 285

原创 机器学习(五)——机器视觉从入门到精通只要简单这3步

所谓机器视觉就是使用光学非接触式感应设备自动接收并解释真实场景的图像以获得信息控制机器或流程。简单来说,机器视觉就是为了流程控制或检测所制造的产品而从数字图像中自动提取信息。 用机器代替人眼来做测量和判断,已是诸多相关领域发展的趋势。虽然人类视觉最擅长于对复杂、非结构化的场景进行定性解释, 但机器视觉则凭借速度、精度和可重复性等优势,擅长于对结构化场景进行定量测量。配备适当分辨率的相机和光学元件后,机器视觉系统能够轻松检验小到人眼无法看到的物品细节特征。尤其是在一些特殊环境下,机器视觉能够防止洁净室受到人

2021-08-31 09:26:31 12151 1

转载 C#学习(二十八)——ManualResetEvent的理解和使用

1、C#ManualResetEvent和AutoResetEvent使用笔记一、两者区别1.ManualResetEvent 调用一次Set()后将允许恢复所有被阻塞线程。需手动在调用WaitOne()之后调用Reset()重置信号量状态为非终止,然后再次调用WaitOne()的时候才能继续阻塞线程,反之则不阻塞2.AutoResetEvent,调用一次Set()只能继续被阻塞的一个线程,多次调用Set()才行,但不需手动调用Reset();再次调用WaitOne()的时候又能阻塞线程,也是和前者的

2021-01-18 15:11:08 8376

原创 C#学习(二十七)——VS代码的折叠与展开

Ctrl + M + O: 折叠所有方法Ctrl + M + M: 折叠或者展开当前方法Ctrl + M + L: 展开所有方法

2020-12-11 15:29:25 592

原创 C#学习(二十六)——C#中的构成:Program.cs、Form1.cs、Form1.Designer.cs

一、 Form.cs和Form.Designer.cs其实是一个类,Visual Studio为了让我们方便管理,用partial关键字把窗体类给拆开了。Form.Designer.cs(窗体的设计类)存放窗体的布局,你的窗体定义了哪些控件,那些控件的名字、属性等等,都是存放在Form.Designer.cs里面的----最好不要在这里写/修改代码;而Form.cs(窗体的逻辑类)则是用来存放处理方法的,比如你的按钮点击事件绑定了Button_Click这个方法,就会出现在Form.cs里;

2020-10-10 10:30:54 2735

原创 计算机基础知识(一)

BIN文件:在软件的安装后文件夹中大部分软件或服务器软件都有个 bin 文件夹;因为 bin (binary)其中文意思即是:二进制;所以,里面存放的一般是可执行的二进制文件,所以我们通常使用较大型的软件时都会发现有这个名称的文件夹。bin是单词binary的缩写 是二进制的意思由于一些约定俗成的原因我们一般都将可执行文件放到 bin 目录中.Linux 中的某些重要的目录:•主目录:/root、/home/username•用户可执行文件:/bin、/usr/bin、/usr/local/

2020-09-17 17:00:14 417

原创 爬虫(一)——Excel爬虫

Excel爬虫:https://blog.csdn.net/zhuxunyuoyi/article/details/76293200https://blog.csdn.net/weixin_42968458/article/details/82258853?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distr

2020-09-16 09:44:19 592

原创 机器视觉(四)——打光

机器视觉打光方式相关问题汇总问题描述:如果想要抓拍运动的物体选用什么相机和光源比较好,还是说应该尽量把运动的物体转为静止检测最佳回答:1、用线扫相机和线光源搭配使用 2、高帧率面阵飞拍问题描述:要测的缺陷有划痕,凹坑,粗糙度,壳体有反光,不知那种光源好,反光挺厉害,也不知道那种光路合适最佳回答:正常情况下金属外壳是一个平面,没有弧度,选择平行同轴光效果比较好。如果外壳是有弧度的话,我个人认为选择低角度的光源好一些,最好加上偏振片问题描述:测量零件尺寸时,背光源和被测工件之间的距离多少

2020-09-04 09:26:09 2457

原创 C#学习(二十五)——如何在PictureBox上画十字架

上图是在picturebox里面画十字架代码如下://加载picturebox的Paint事件 private void pictureBoxImg_Paint(object sender, PaintEventArgs e) { //十字架 PictureBox p = (PictureBox)sender; Pen pp = new Pen(Color.Red, 1);//线为红色,线宽为一个像素.

2020-08-26 13:38:55 3119

原创 工业互联网(十三)——工业相机相关知识(初学者必备)

1.工业相机相关知识(初学者必备)工业相机是机器视觉系统中的一个关键组件,其最本质的功能就是通过传感器将光信号转变成有序的电信号,通过线缆传输至电脑终端实现图像采集和保存等操作,工业相机在机器视觉系统中处于重要位置,下面我们介绍工业相机相关知识。传感器类型工业相机按照芯片类型可以分为 CCD 相机、 CMOS 相机, 其作用都是将光信号转换为电信号的器件,但是工作原理却不同, 比如 CMOS 传感器每个像素点都有一个电信号放大器, 因此每个像素点有效感光面积会小于同尺寸的 CCD, 从成像效果来说

2020-08-16 16:10:19 12355

原创 C#学习(二十四)——DataGridView控件用法介绍

原帖: http://blog.csdn.net/angel20082008/article/details/51718676https://blog.csdn.net/lifeng_beijing/article/details/78272320DataGridView控件在实际应用中非常实用,特别需要表格显示数据时。可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行。假如需要动态为DataGridView控件添加新行,方法有很多种,下面简单介绍如何为DataGridView控件

2020-08-15 09:18:45 2237

原创 C#学习(二十三)——一维数组和二维数组的转换表示

关键:下标的计算一维->二维一个n个元素的一维数组,转换为r行c列的二维数组对于一维数组中任意一个元素的下标i(0 <= i < n)其对应的二维数组下标为 (i / c, i % c), 显然, 只与列数c有关,而与行数r无关code like thisint[] a = new int[n];int[,] b = new int[r, c];for (int i = 0; i < n; i++) b[i / c, i % c] = a[i];als

2020-08-14 14:05:52 680

原创 C#学习(二十二)——线程间操作无效: 从不是创建控件“dataGridView1”的线程访问它

//我有一个方法,从服务里取数据然后赋值给datagirdviewprivate void ReadDgv(){QM_LabBill.WebService1SoapClient aa = new QM_LabBill.WebService1SoapClient();dataGridView1.DataSource = aa.getYGDay();}//然后在窗体加载的时候用线程读取数据private void FmDgv_Load(object sender, EventArgs e){T

2020-08-14 12:00:01 366

原创 C#学习(二十一)——Tcp协议收发数据 && Socket客户端监听服务器端处理方案

Tcp协议收发数据 && Socket客户端监听服务器端处理方案1.https://blog.csdn.net/dl962454/article/details/78990735?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blo

2020-08-14 10:26:19 1102

原创 C#学习(二十)——使用DataGridView显示二维数组中的内容

int[,] TABLE = new int[,] { { 1, 2, 3 }, { 4, 5, 6 } }; DataTable dt = new DataTable(); for (int i = 0; i < TABLE.GetLength(1); i++) dt.Columns.Add(i.ToString(), typeof(int)); for (int i = 0; i < TA

2020-08-14 10:20:03 745

原创 C#学习(十九)——C#中Split分隔字符串的应用

1、用字符串分隔:using System.Text.RegularExpressions;string str=“aaajsbbbjsccc”;string[] sArray=Regex.Split(str,“js”,RegexOptions.IgnoreCase);foreach (string i in sArray) Response.Write(i.ToString() + “”);输出结果:aaabbbccc2、用多个字符来分隔:string str=“aaajbbbsccc

2020-08-13 17:22:48 183 1

原创 C#学习(十八)——CheckForIllegalCrossThreadCalls

CHECKFORILLEGALCROSSTHREADCALLS= FALSE多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,这时如果想要访问窗口的控件,发现无法对其控制。这时可将窗口构造函数中的CheckForIllegalCrossThreadCalls设置为false;然后就能安全的访问窗体控件。如果捕获了对错误线程的调用,则为 true;否则为 false。System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls

2020-08-13 14:58:06 2449

原创 计算机基础知识(一)——同步通信与异步通信

通俗理解同步通信与异步通信网络上对同步传输与异步传输的文章一大把,各种图示解说也很多,但看完终归有点一头雾水,当然了,要想真正透彻地理解这些专业性的概念,最好的方式还是在实践中找到这些概念的体现。同步传输与异步传输虽然从名字上来看是两个完全不同的方式,但要知道,他们的目的是相同的,其实他们都是在进行位同步的动作,只不过一个选择了直捣黄龙,而另一个是迂回作战。所以首先应该明确一个思想,如果想理解这两种方式只要理解了他们是在如何进行同步就可以了。异步通信:异步通信中的接收方并不知道数据什么时候会到达,收

2020-08-13 14:05:31 2510

原创 C#学习(十七)————ToString类型

int t=45;string s1 = t.ToString(“F3”);//表示转换后,小数点后面的数的个数string s2 = t.ToString(“X3”);//"D"相当于"X"表示转换后,输出的数字的个数string s3 = t.ToString(“F1”);//"D"相当于"X"表示转换后,保留一位小数string.Format("{0:d2}",t);// 转化时间//十进制转二进制Console.WriteLine(Convert.ToString(69, 2));/

2020-08-11 14:40:22 1539

原创 机器视觉(三)——学习机器视觉的参考顺序

刚开始接触机器视觉的朋友可以按这个一步步来学习,挺好用的一:视觉启蒙入门1.halcon编程,熟悉halcon环境、tuple数组、文件操作及简单的案例编程2. halcon基础学习,halcon自定义算子封装等,进行入门编程训练3. halcon数据类型(主要是控制变量/图像变量)和halcon人机可视化交互4. halcon视频图像采集,单相机以及多相机5. 图像处理基础与ROI区域6. 图像预处理、二值化、形态学与图像区域特征提取分析7. Halcon在VS(C#或C++)下的联合配置

2020-08-07 15:07:20 2293 2

转载 机器视觉(二)——OpenCV配置出现异常: 0xC0000005: 读取位置 0x0000000000000008 时发生访问冲突

运行环境:windows10 opencv4.1.2 virsual studio2019问题描述:在Debug下调试运行正常,但是在Release模式下报错:0x00007FF8FFA61CE7 (opencv_world320d.dll)处(位于 myproject.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000000000000008 时发生访问冲突。例如下图所示:Release模式适合批量处理,速度是Debug模式下的N倍。解决办法删除vs2015中release模

2020-07-27 16:40:48 5778 2

原创 机器学习(一)——随机游走

浅谈随机游走http://blog.csdn.net/songzitea/article/details/18087401随机游走模型(Random Surfer Model)http://book.51cto.com/art/201201/313371.htm推荐系统 - 3 - 协同过滤算法、随机游走算法http://blog.csdn.net/xueyingxue001/article/details/51984970随机游走模型与资本市场的效率http://blog.sciencene

2020-07-19 21:24:35 1098

原创 数学建模学习(二)——现代优化算法,快来学

一、遗传算法1.【算法】超详细的遗传算法(Genetic Algorithm)解析https://www.jianshu.com/p/ae5157c26af92.遗传算法的C语言实现(二)-----以求解TSP问题为例https://www.cnblogs.com/lyrichu/p/6152928.html3.遗传算法详解(GA)(个人觉得很形象,很适合初学者)https://blog.csdn.net/u010451580/article/details/511782254.10分钟搞懂遗

2020-07-14 14:27:11 484

转载 OpenCVsharp学习笔记(一)

使用opencvsharp在c# winform的pictureBox上播放视频https://blog.csdn.net/zanllp/article/details/82263751c# opencvsharp学习笔记(1)https://blog.csdn.net/zanllp/article/details/79828968c# opencvsharp学习笔记(2)https://blog.csdn.net/zanllp/article/details/79829813c# opencv

2020-07-13 11:15:55 652

原创 C#学习(十六)——基于C#与OpenCVSharp的图像处理软件

基于OpenCVSharp的图像处理软件:https://blog.csdn.net/you_big_father/article/details/86088531?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMach

2020-07-13 10:58:23 1177

原创 工业互联网(十二)——VISA编程

1.试水VISA编程(1)——对仪器的基本的控制由于项目所需,要编写上位机控仪器实现所谓一键读取数据的功能。于是乎不得不学习点VISA编程。研究了一阵子手册,明白了发送命令的方式。使用的仪器是安捷伦的DSO-X 3034A。1、在https://www.keysight.com/main/techSupport.jspx?cc=CN&lc=chi&nid=-32540.1150200&pid=x201847&pageMode=PL&t=79841.g.1 下载Pr

2020-07-08 17:58:00 4304

转载 工业互联网(十一)——Agilent函数发生器编程(Agilent IO Suite使用)

实验室买了个函数发生器,要集成到自己的设备上,又想从自己编写的PC Windows软件上直接控制,不用手动操作。像这种标准测试控制仪器都是提供PC接口的,在查阅了相关资料以后,完美解决问题,记下相关知识以供有需要的参考。我用的Agilent函数发生器型号是Agilent 33521B。要完成PC控制仪器需要了解两方面知识:SCPI和VISA。SCPISCPI(可编程仪器的标准命令)是一种基于 ASCII 的仪器命令语言,供测试和测量仪器使用,简单来说就是你发送给一个设备一串SCPI格式的字符串,它就

2020-07-08 17:30:01 2474 2

转载 工业互联网(九)——工业相机编程模型和流程

不同的工业相机提供不同的编程接口(SDK),尽管不同接口不同相机间编程接口各不相同,他们实际的API结构和编程模型很相似,了解了这些再对工业相机编程就很简单了。DMA技术DMA是一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为"DMA控制器"的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中CPU可以进行其他的工作。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提

2020-07-08 17:24:11 529

转载 工业互联网(八)——Pylon 相机程序开发中的若干总结

1.内存泄露问题尽管内存泄露的原理和解决办法很简单,但是还是有很多人会不自觉的写出内存泄露的程序来,尽管有时候他们的程序并没有运行足够的时间来让他们或客户发现问题,但是了解如何有效的避免内存泄露总是不错的。一般来说,内存泄露主要是由于申请了相应的资源,但是使用它以后并没有释放。如果只是简单地程序,那很容易避免内存泄露的问题,但是如果,在一个程序中同一个指针p指向的内存区在不同函数间不停的申请和释放,天知道最后p指向的内存是不是被释放了(尽管有时候,少部分狂热分子会拨开层层迷雾去一探究竟,但这是不必要的)

2020-07-08 17:18:36 254

转载 工业互联网(七)——透过Pylon和MIL函数看一般硬件SDK API的组织架构

最近接触和硬件通讯的上位机编程,在此总结一下硬件SDK API组织架构的一般构成,对组织架构有宏观的了解对于写一个优美的程序是必不可少的。1.观察二者函数,相同功能的函数开头总是相同的,如MIL的Mapp…,Mdisp和Pylon的PylonDevice…,PylonStreamGrabber…等等,这样是将同一功能模块的函数放在一起,便于查找和记忆方便,当像实现相应的功能时很自然的回去查找相应功能开头的函数。2.基本上都是围绕一个核心来组织架构,说核心估计很多人不理解,举例来说就是MIL中的Appli

2020-07-08 17:09:56 187

转载 工业互联网(六)——Pylon 以实时图像采集讲解PylonC SDK使用流程

一般的对于提供硬件编程来说,硬件生产厂家都会提供好SDK使用的手册和实例。手册中一般包括安装和配置流程,一些基本概念的介绍,SDK每个函数使用,SDK使用流程和实例(有些硬件实例直接写在手册中,有些会以单独文件存在,还有的两者皆有)。对于上位机软件开发人员来说拿到一个硬件上位机编程任务,首先应该阅读了解其SDK概念,再按照其介绍的SDK开发流程阅读其提供的实例,修改相应的实例为自己所用,有不懂的函数查询一下其用法即可。有些开发人员习惯性的去记其API,这是费时费力的做法,并不推荐。下面主要以实时图像采集讲解

2020-07-08 17:08:11 636

转载 工业互联网(五)——Pylon 编程环境设置

Pylon是Basler相机基于通用相机接口程序(即驱动)GenICam(Apache基金下开源项目,全称为General Image Camera)开发的相机接口程序。安装完后打开文件夹如下(一般采用默认路径安装)其中,apps为用于配置ip和调试相机的软件,bin为驱动程序,doc为帮助文档,genicam为原生的GeniCam项目的相关文件,pylon为基于C++的开发文件,pylonc为基于C的开发文件,Samples为示例文件,License.rtf为license文件本次采用的是基于Ge

2020-07-08 17:02:37 1094

转载 工业互联网(四)——Pylon CSDK API的结构

用Pylon CSDK进行开发时,应该先了解整个API的结构组成Pylon C API基于GenApi,GenApi提供各个相机统一访问接口。Pylon C中带GenApi前缀的均为GenApi的函数,这些底层函数直接提供给Pylon C用户使用。对象和句柄首先应该了解的是对象和句柄的概念。Pylon定义了相机对象(Camera Objects),同步对象(Waiting),数据流抓取对象(Stream Grabber),事件抓取对象(Event Grabber),附加信息解析对象(Chunk Par

2020-07-08 16:58:12 483

原创 C#学习(十五)——窗体控件用法大全

C#控件及常用设计整理1、窗体1.1、常用属性**(1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。(2) WindowState属性: 用来获取或设置窗体的窗口状态。 取值有三种: Normal (窗体正常显示)、 Minimized(窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示)。(3)StartPosition属性:用来获取或设置运行时窗体的起始位置。(4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的

2020-07-01 20:16:12 10821

原创 C#学习(十四)——C# “从元数据”

所谓元数据.其实是指由微软所封装的类…这些类你可以查看.但是无法修改。元数据是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件 (PE) 文件或存储在内存中的程序进行描述。将您的代码编译为 PE 文件时,便会将元数据插入到该文件的一部分中,而将代码转换为 Microsoft 中间语言 (MSIL) 并将其插入到该文件的另一部分中。在模块或程序集中定义和引用的每个类型和成员都将在元数据中进行说明。当执行代码时,运行库将元数据加载到内存中,并引用它来发现有关代码的类、成员、继承等信息。元数据以非特

2020-06-30 13:54:40 10204

原创 C#学习(十三)——C# 使用 GDI+ 画图

GDI - 图形设备接口(Graphics Device Interface)GDI是图形设备接口的英文缩写,主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形和图像输出。GDI的出现使程序员无需要关心硬件设备及设备正常驱动,就可以将应用程序的输出转化为硬件设备上的输出和构成,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Wind

2020-06-30 13:48:29 1532

原创 C#学习(十二)——创建DLL(动态链接库)及其使用

一、DLL 与应用程序动态链接库(也称为 DLL ,即为“ Dynamic Link Library ”的缩写)是 Microsoft Windows 最重要的组成要素之一,打开 Windows 系统文件夹,你会发现文件夹中有很多 DLL 文件, Windows 就是将一些主要的系统功能以 DLL 模块的形式实现。动态链接库是不能直接执行的,也不能接收消息,它只是一个独立的文件,其中包含能被程序或其它 DLL 调用来完成一定操作的函数 ( 方法。注: C# 中一般称为“方法” ) ,但这些函数不是执行程

2020-06-30 13:41:13 4298

转载 C#学习(十一)——IntPtr类型

1.C#中的IntPtr类型被称之为“平台特定的整数类型”,用于本机资源,例如窗口句柄。2.资源的大小取决于使用的硬件和操作系统,即此类型的实例在32位硬件和操作系统中将是32位,在64位硬件和操作系统中将是64位;但其大小总是足以包含系统的指针(因此也可以包含资源的名称)。3.在调用API函数时,类似含有窗口句柄参数(HANDLE)的原型函数,应显示地声明为IntPtr类型。4.IntPtr类型对多线程操作是安全的。5. int 和IntPtr互转int i=1; IntPtr p=new I

2020-06-30 12:56:28 12268 2

原创 C#学习(十)——File和FileStream的用法

原文链接:https://blog.csdn.net/qq_41209575/article/details/89178020https://blog.csdn.net/boy_of_god/article/details/80617201https://blog.csdn.net/susubuhui/article/details/3789047https://blog.csdn.net/swin16/article/details/80256123https://blog.csdn.net/q

2020-06-30 11:00:15 292

空空如也

空空如也

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

TA关注的人

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