- 博客(41)
- 收藏
- 关注
原创 7.VisionPro糖果查找(脚本)
将匹配出来的转换成灰度的图像,使用预处理工具进行灰阶形态调整,使灰度区域更加明显。主要是使用PMA把数量计算出来。这样就结束了,还是比较简单的。后边就是高级脚本的计算了。
2025-05-21 22:57:21
133
原创 6.VisionPro轴承找缺口
本文介绍了一种基于图像处理和模板匹配的轴承检测方法。首先,导入图像并使用PMA模板匹配工具进行训练,提取形状并去除多余部分。接着,通过坐标定位和图像预处理工具进行高波过滤,找圆后使用极坐标转换工具将轴承展开为矩形。随后,导入PMA模板脚本进行单个轴承的模板匹配,并创建toolBlock进行排序和计算平均距离。最后,通过脚本将合格轴承标记为绿色圆圈,不合格的标记为红色方格。该方法通过计算平均间隔和锁定空缺轴承,实现了轴承的自动化检测与分类。
2025-05-21 22:48:32
207
原创 4.C#VisionPro二次开发(ICogFrameGrabber)1
该方法比较代码使用的比acqfifo麻烦一点界面使用cogRecordDisplay1展示图像。
2025-05-21 20:51:50
297
原创 3.C#VisionPro二次开发(CogAcqFifoTool)
把该文件的内的文件直接拉到visual可以看到一些控件。打开相机有两种方式,这个是比较简单的,接下来就是拉控件写代码。
2025-05-21 20:35:13
163
原创 1.github代码下拉出现ssl无法验证
github的代码下拉会出现ssl的验证有5种解决办法这个错误通常是由于 Git 无法验证 SSL 证书引起的,可能是因为本地的证书链不完整或者没有配置好。
2025-05-14 19:28:32
932
原创 3.VisionPro豆子识别(花生,黄豆,红豆,绿豆)
脚本里面也没有难点,就一个for循环加上一个if判断,这个在代码里面算是最简单的,各位也只是缺一个解决问题的思路,希望这个文章能帮到朋友,有什么不懂的也可以私信,有报错,也可以询问。这个最多的难点是红豆和黄豆面积差不多,不过幸好只有这两个可以通过第二个的CogBlobTool2的工具给红豆单独拿出来。通过计算可以得出黄豆数量(如果有其他办法也可以联系我修改)这是主体代码,里面主要就是判断面积,给每个数量++1.声明变量这么多是因为,每个数量的展示都需要。然后就是把数量展示出来了。
2025-05-14 15:54:16
304
原创 2.VisionPro实现圆环文字读取
这种一般都是查找圆环二维码和数字,VisionPro比Halcon要简单的多,基本是手动操作图像如下:可以拿去试试。
2025-05-14 15:20:16
363
原创 1.VisionPro软件安装
有需要的私信联系,看到就联系了,也希望各位在学习的路上互相帮助。点击之后一直下一步,不需要安装c盘可以根据自己的存放位置安装。安装之前记得关闭防火墙,以及各种360,火绒的软件,然后下一步安装等待就行了。到此结束直接运行就行。
2025-05-09 12:25:21
205
原创 4.Halcon的二维码,条形码的算子以及使用区别
我那两张不同读取的代码一对比就明白了,就是二维码比条形码多了一个2D这样写没干货啊,只能AI生成了,希望在学习途中都能使用AI理清自己的思路而不是一味的复制粘贴。
2025-05-08 20:49:54
403
原创 3.Halcon如何获取外圆环上刻印的字符
是 Halcon 中的一个算子,用于将图像从直角坐标系(Cartesian coordinates)转换为极坐标系(Polar coordinates)。这个转换对于某些图像处理任务非常有用,尤其是在处理具有旋转不变性或圆形对称性的图像时。然后就是可以获取轮廓,通过外圆环得到整个圆的区域,在通过gen_circle的两个圆计算出需要拿到存在字符的圆环。#这个难点在于怎么把外环展开,在使用ocr读取字符就行了#一般都要使用转灰度值,然后二值化。剩下的就是怎么把这个圆环展开。剩下的就是OCR的字符识别了。
2025-05-08 20:35:21
152
原创 一.视觉开发初学(visionPro,halcon,openCV)
VisionPro:主要面向工业自动化领域,提供强大的图像处理和机器视觉功能,支持与工业硬件设备集成,适用于质量控制、装配检测等。Halcon:高性能的商业机器视觉软件库,支持复杂的图像处理和分析,尤其擅长工业检测、机器人视觉、三维视觉等任务,并支持深度学习应用。OpenCV:开源且免费的计算机视觉库,广泛应用于实时图像处理、视频分析和机器学习任务,支持多种编程语言和平台,适合开发者和研究人员使用。该说不说AI真好。
2025-04-25 20:53:57
665
原创 15.c#的通信,串口,UDP,TCP,HTTP,Modbus
串口通信:通过类进行设备通信。UDP通信:通过UdpClient类进行无连接的高速数据传输。TCP通信:通过TcpClient和类实现可靠的、面向连接的通信。HTTP通信:通过HttpClient类进行基于 HTTP 协议的请求和响应处理。Modbus通信:通过第三方库(如NModbus)实现工业设备的通信,支持 Modbus RTU 和 TCP 协议。看项目需要快,还是安全,数据量大,
2025-04-25 20:40:06
478
原创 14.N层架构(Model/IDAL/DAL/DALFactory/BLL)
这个没法讲代码只能说原理,基本的代码除了增删改查,竟然可以使用东软代码生成器把表中的数据生成Winform中架构中的业务层的代码。DALFactory:数据访问的抽象工厂层,主要配合IDAL层,实现数据DAL和BLL之间的解耦。IDAL:数据访问的接口层,主要配合DALFactory层实现DAL和BLL之间的解耦。里面需要引入各个层内的包,下边是引用关系,只要把数据封装好,就会比较好使用。好了,该上重头戏前端转硬件上位机开发最大的问题------通信。DAL:数据访问层,主要负责访问对应的数据。
2025-04-25 20:22:41
193
原创 13.c#的Task和Invoke和async/awite
Task用于表示异步操作或任务,它支持并行计算和异步执行。Invoke用于委托同步调用,尤其常用于多线程环境中的 UI 更新。async和await是 C# 提供的用于简化异步编程的关键字,使得异步操作的编写和理解变得更加直观和易于管理。这三者有时可以一起使用,Task可以通过进行简化,Invoke可以用来在 UI 控件上进行线程安全的操作。各位,多学习共勉之,最近在个人发展方向上小巫见大巫了。
2025-04-25 20:07:22
635
原创 11.协变与逆变(out/in)
允许将更基类的类型赋值给更派生的类型,通常用于接口和委托中的输入参数。允许将更派生的类型赋值给更基类的类型,通常用于接口和委托中的返回值。逆变(Contravariance)协变(Covariance)适用于方法参数类型。
2025-04-25 19:46:16
130
原创 10.c#序列话(JSON序列化,二进制序列化,XML序列化以及自定义的序列话)/(加密解密)
反序列化:把JSON格式的字符串转换成Object类型的数据,方便使用Object的成员。序列化:把Object类型的数据转换成JSON格式的字符串,方便在互联网上传输。散列算法加密:任意长度的数据转换为固定长度的哈希值。对称加密:使用相同的密钥对数据进行加密和解密。JSON格式的数据在互联网上传输时,比 XML 更小、更快,更易解析。然后就是所有的序列话中最好用,我最习惯的还是json的数据格式。加密算法分类:对称加密,非对称加密,散列算法加密。私钥:主要用来把密文解密成明文,用到的key。
2025-04-25 19:41:08
138
原创 9.C#文件操作(Stream,File,Directory)
它用于读取和写入字节数据,是处理输入/输出(I/O)操作的基础。例如,使用 Directory 遍历目录,使用 File 快速读写文件,或者使用 Stream 处理复杂的文件操作。它可以用于创建、删除、移动目录,以及获取目录中的文件和子目录。它封装了常见的文件操作,例如创建、复制、删除、移动文件,以及读取和写入文件内容。是处理字节数据的底层工具,适合需要精细控制读写操作的场景。:是操作目录的工具类,适合管理文件系统中的目录结构。:是操作文件的工具类,适合快速完成常见的文件任务。
2025-04-25 19:19:19
401
原创 9.C#文件上传
文件的输入与输出类:FileStream类,MemoryStream类,StreamReader类,StreamWriter类,StringReader类,StringWriter类。读取文件:ReadAllBytes(),ReadAllLines(),ReadAllText(),ReadLines()追加文本:AppendText(),AppendAllLines(),AppendAllText()打开文件:Open(),OpenRead(),OpenText(),OpenWrite()
2025-04-25 19:09:58
309
原创 8.C#堆栈和队列
我的天,了解深入后,发现单一的软件开发根本不适合现在的转行,在了解工控行业后。上位机不仅要学习PLC,现在还有机器视觉类的,听说机器视觉的开发更难。数组的操作方式跟前端差不多,但是声明数组对象的方式可真不一样。当你需要对各项进行后进先出的访问时,使用堆栈。Int x=stack.Count 查询。c#使用Link声明的空数组不用声明类型。这个原理我是知道的.数组的存入规则。的时候 称为推入元素(的时候,称为弹出元素(队列 表示的是一个。
2025-04-25 17:46:34
213
原创 7.C#学习-泛型(泛型约束)
总结:其实图表说的很明白了.泛型就是一个可以传入各种类型的参数,传什么就是什么。泛型约束就是设置一个条件,控制传入数据的类型不能是其他没有用避免引起报错。:限制类型参数必须实现`IComparable`接口。:通过泛型可以编写通用的类、方法和接口,减少重复代码。:编译器会在编译时检查类型是否匹配,减少运行时错误。:泛型在运行时不会进行装箱和拆箱操作,提高了性能。:限制类型参数必须继承自`BaseClass`。:限制类型参数必须有无参构造函数。:限制类型参数必须是引用类型。:限制类型参数必须是值类型。
2025-04-25 17:35:43
268
原创 TypeScript的使用
大概就是这样东西具体的我也没多用什么,就记住有报错,就是你的参数没有写类型,看看是any还是string,还是number。定义:TypeScript 简称 TS,是 JavaScript 的超集,包含所有 JS 功能且延伸类型支持功能。TypeScript:静态类型,编译期做类型检查,代码执行前发现错误;背景:JS 属于弱类型语言,易产生类型错误 ,项目开发时增加了查改 Bug 的时间,影响效率。JavaScript:动态类型,执行期做类型检查,代码执行时发现错误。
2025-04-25 17:24:28
163
原创 react使用yarn和TypeScript
为了更好识别代码中的问题就使用了yarn和TS的规范化开发,而且安装依赖报错问题更清晰明了。成功后可以查询版本号 yarn --version。首先安装 npm install -g yarn。在node_modules中添加yarn。然后就是跟node一样需要设置环境变量。然后就可以替代npm使用yarn了。
2025-04-25 17:07:44
153
原创 6.c#类的继承,调用
如果准备在子类中重写父类中的方法 父类用virtual子类中用override。public virtual void ren()//虚方法。:限制类型参数必须实现`IComparable`接口。:通过泛型可以编写通用的类、方法和接口,减少重复代码。如果方法的传入值是泛型那么他就无法进行比较和计算。:限制类型参数必须继承自`BaseClass`。override 重写 重写父类的方法。当父类有构造参数的时候子类被实例化的时候。子类中的虚方法会覆盖(重写)父类虚方法。
2025-04-25 16:02:37
872
原创 5.LinQ,主要是查询和操作数据库的操作,使用C#在SQL中类似SQL语句查询数据源,
遍历number 数组将遍历出的每个值给num(类似于foreach)//from where select ,相当于循环数组遍历。判断 类似于if 里面写条件表达式。使用string.Join遍历数组。数据库之前接触过,这个还真没用过。//select 代表存入新数组。//feom代表for循环。//where代表筛选条件。将符合判断条件的值返回。
2025-04-24 21:48:16
138
原创 4.线程(非常重要)
在计算机中一个程序代表一个进程,一个进程中看可以有多个线程,默认会有一个线程叫做主线程。Thread 线程变量名=new Thread(交给线程处理的方法)
2025-04-24 21:41:37
119
原创 1.c#学习,最终还是要转行了
当条件语句为真时执行“{}”内的命令 (擅长没有固定循环次数的循环)Array.IndexOf(数组, 查找目标, 起始索引);Array.Resize(ref 数组, 改变后长度);Array.Clear(数组,从哪个下标开始,清除几个)Array.Reverse(数组,起始下标,反转的数量)无论条件语句是否为真都先执行一次“{}”中的命令。string.Join(“分隔符”,集合);(从小到大)(颠倒一次就成从大到小了)使用List做二维数组/类型。三元表达式跟前端使用一样。数据类型2023.7。
2025-04-24 21:33:15
275
原创 系统内做一个wpf表格界面,LuckySheet
做表格有几个框架,LuckySheet ,kkfileview,微软在线文档,onlyoffice还有一个luckySheet开发组正在开发的Univer Sheets群号:926131495其他几个我也都尝试过,有付费,引入之后界面也有水印,因为公司项目也没法用免费就是Sheet,当时Univer功能没开发权就没有,所以最终项目确定LuckySheetLuckySheet有两种使用方式。
2025-04-24 20:29:40
199
原创 如何把一些界面,数据变成PDF界面导出
/ 500为底部留白。//内容图片这里不需要留白的距离。首先在界面中引入html2canvas和jsPDF。使用html2canvas和jsPDF。在界面上设置数据并把最大的容器放上去。
2025-04-24 19:50:55
151
原创 封装一个Echarts的饼图,直方图
现在前端写一些东西都有很多案例,一个Echarts都有很多网站和案例,如果有人遇到要动态写一些饼图或者直方图可以试试我封装的这种方法。写大数据可视化项目用的比较多,下边是一些我当时查找的一些网站。如果有很多的话可以使用遍历这个标签.
2025-04-24 19:41:20
311
原创 前端常用正则表达式
isNotChina: /^[^\u4e00-\u9fa5]{0,}$/, // 不为中文 IDcard: /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, // 身份证。
2025-04-24 19:29:57
248
原创 React使用antd框架,如何引入苹方字体
在index.less中引入字体,为了方便使用,设置不同字号的字体/不加粗/加粗字体/以及标题字体(注意有些低版本浏览器无法直接显示,所以也要设置一个微软雅黑和宋体的字体)咱们使用框架时候会出现样式冲突,最难的是修改框架的样式,可以通过增加权重或者,在F12中查看界面的样式名,把相关字体存放到图片,以及引入文件夹。在css代码中直接使用。
2025-04-24 19:25:24
189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人