摘要:
形态学处理 形态学处理之前需要将图像进行二值化处理, 然后我们需要设定一个卷积核, 最后将像素上每个点都完成卷积计算. 形态学很多高级处理的基础, 有很多作用: 消除毛刺、填充空隙、检测边缘,检查拐角(使用十字形卷积核) 腐蚀 Erode 腐蚀作用和膨胀相反, 用来腐蚀减小白色区域, 常用来消除一些 阅读全文
摘要:
最常用的方式是: Cv2.ImRead() 可以将位图文件转成Mat数据格式 Cv2.ImWrite() 可以将Mat数据格式保存到位图文件. 不通过读写文件作为转换介质的方法: private void testMatToPicture() { var mat = Cv2.ImRead("D:\\ 阅读全文
摘要:
卷积运算和卷积核 图像运算中经常会碰到卷积运算这个讲法, 初看不知道具体含义, 其实非常简单, 工作原理如下: 首先提供一个小的矩阵, 一般是3*3, 或者是 5*5 或者是 7*7, 一般是方形矩阵, 维度为奇数, 这样中心点可以作为锚点, 矩阵中的元素取值多为很小的整数(或正或负或零), 该矩阵 阅读全文
摘要:
直方图可以反映图片的整体统计信息, 使用函数 CalcHist() 实现. 但CalcHist() 统计出的数量信息和图像大小相关, 如果要剔除图像大小因素, 需要做归一化处理, 归一化处理后的信息, 反映出各个颜色值得占比情况, 这样更方便不同size图像做对比, 归一化的函数为 Normaliz 阅读全文
摘要:
Mat构造函数中有两组函数传参特别容易传错, 分别是: public Mat(int rows, int cols, MatType type) public Mat(OpenCvSharp.Size size, MatType type) 稍不注意, 我们会认为下面两个mat尺寸相等, var m 阅读全文
摘要:
窗体上选择感兴趣ROI区域 在计算机视觉处理中, 通常是针对图像中的一个特定区域进行处理, 有时候这个特定区域需要人来选择, OpenCV 也提供了窗口选择ROI机制. 窗体支持两种选择ROI区域的方法, 一个是单选, 一个是多选, 操作方法如下: 单选: 通过鼠标在屏幕上选择区域, 然后通过"空格 阅读全文
摘要:
图像复制 共享数据, 使用 new Mat(srcMat, ...) 和 newMat=srcMat 生成新的Mat都和原Mat共享数据, 也就是说如果修改某一Mat,其他Mat也会随之改变 复制全新的Mat, 使用CopyTo() 和 Clone() 方法将生成一个全新的Mat, 新Mat和原Ma 阅读全文
摘要:
PutText() 输出文本 OpenCV5 将支持中文字符的输出, 当前版本OpenCV4原生不支持, 可以使用Contrib包+FreeType方式实现, 不过比较麻烦. 为了省事, 也可以通过将Mat转成bitmap,然后使用GDI方式输出中文字符. 示例代码 /// <summary> // 阅读全文
摘要:
图像读取 ImRead() 函数可从文件中读取图像, 并生成一个Mat对象, ImRead() 函数支持绝大多数图像格式. 注意点: 读取后生成的Mat对象, 颜色空间为BGR, 第二参数为读取方式, 常用的方式有: . ImreadModes.Color: 彩色方式读取, 即使原图是4通道或者单通 阅读全文
摘要:
channel 和 depth 理解 Channel 是颜色的维度数量, 比如 BGR 的channel为3, BGRA则为4. depth 为单通道的颜色的精度, 比如CV_8U 的 depth为8位, 在OpenCV中, 8位为对应的depth取值为0, 下面是depth取值的枚举: CV_8U 阅读全文
摘要:
OpenCV C#库, 选择 OpenCVSharp 库, 主要3个库: OpenCvSharp4 :基础类型库 OpenCvSharp4.runtime.win : Windows 下的实现库 OpenCvSharp4.Extensions :一些扩展类库, 比如 BitmapConverter 阅读全文
摘要:
FINS 模拟器(我都没有测试成功) https://github.com/kowiste/FINSServer https://github.com/l1va/gofins/ https://github.com/ahmadfarisfs/fins_simulator_omron Omron FI 阅读全文
摘要:
十一假期里将蓝牙音箱改造成一个智能音箱, 参考了网上的实现方法, 后台的大语言模型使用的是百度的文心一言. 账号 Picovoice 唤醒词服务 https://console.picovoice.ai/ 我绑定了github账号. 访问https://picovoice.ai/,注册账号,然后进入 阅读全文
摘要:
网上有很多将Winform窗体缩到 System tray的示例, 但多数不好用. 这里是一个简单示例, 使用了Visual studio自带的 NotifyIcon 控件和一个快捷菜单 contextMenuStrip控件. 增加一个 contextMenuStrip 控件, 新增两个菜单项: 显 阅读全文
摘要:
教程: https://www.bilibili.com/read/cv23650505/ 软件下载 https://www.123pan.com/s/fACrVv-rsf93.html 提取码:c1It 阅读全文
摘要:
组件 Nancy.Hosting.Self.dll Nancy.dll Newtonsoft.Json.dll Nancy 的两个库应该选用v1的最后版本号, 不要使用v2版, v2版架构有较大变化但文档又不完善, 而且已经停止开发. Nancy.Hosting.Self 库可以帮助我们在conso 阅读全文
摘要:
github 已经要求进行2FA验证, 否则过期不能提交代码, github手机短信验证不支持中国号码, 我按照下面文章介绍使用的是 Chrome 插件. https://zhuanlan.zhihu.com/p/615693483 Chrome插件 如果你不想用Python来自己计算,也可以使用一 阅读全文
摘要:
### 陆国君 > 很不错, 这本书网上有两个版本 556页是新的版本, 423页是老的版本, 不过内容差异不大. ![](https://img2023.cnblogs.com/blog/194640/202308/194640-20230820200030123-981769663.png) 4 阅读全文
摘要:
### vb6的dictionary类 vb6 原生容器, 除了array还有collection, 没有原生的dictionary和set类, 在microsoft script runtime库(scrrun.dll) 中有一个dictionary类, 功能还算强大, 可以较好处理key-val 阅读全文
摘要:
北岛夜话 技术文章不错 水滴社区 实操派, 资料下载 阅读全文
摘要:
水滴社区的文章 [资料分享] 【资料分享】PLC的“扫描周期”以及ST指令的特性 理解codesys的 Task 阅读全文
摘要:
下面三个视频讲解了PLC工作原理, PLC循环周期包括: . 自检 . 通讯处理: 包括响应上位机的下载程序请求) . 输入刷新: 将输入端口状态刷新到输入镜像区 . 程序执行 . 输出刷新: 将输出镜像区数据刷新到输出端口 每次新的循环,其输出状态如果不被重新更新, 将一直保持之前循环的结果. 阅读全文
摘要:
有详实的Ethercat背景知识, 汇川运动板卡资料和C#封装 阅读全文
摘要:
## FastReport的几个版本 之前使用FastReport VCL版, 对于.net 平台下的FastReport一直未做过深入了解. .Net平台下的几个版本对比 简单总结: - 商业FastReport.Net 版本, .net framework框架下的商业版本, 功能无限制, 试用版 阅读全文
摘要:
增量式编码器的应用场景 PNP/NPN传感器接线 使用增量式编码器的一个PLC案例, 直流电机工作台攻丝, 业务步骤分解 使用增量式编码器的一个PLC案例, 直流电机工作台攻丝, PLC代码编写 阅读全文
摘要:
C# Can总线资料不多, 达妙USB2CAN入口 ![](https://img2023.cnblogs.com/blog/194640/202307/194640-20230714214642809-80838793.png) 阅读全文
摘要:
第2集中有张半闭环控制图, 是我见过画的最好最完整的图. 第3集讲解伺服驱动和变频驱动的区别, 另外还有光栅尺和张力辊全闭环. 第12集有完整的组态控制设计 第12集回零讲解, 机械零点和程序零点, 坐标系 阅读全文
摘要:
总线定位的总线伺服很简单就这三样东西 搞自动化设备不能少了伺服,如何简单设置伺服参数? 3分钟讲透伺服电机与步进电机的区别 阅读全文
摘要:
## 引入 RTOS的考虑因素 主要考虑以下方面来决定是否需要RTOS支持: - 需要实现高响应时的多任务处理能力 - 需要实现实时性能要求高的任务 - 需要完成多个复杂的并发任务 ## NanoFramework 具备满足工控系统实时性要求的各项功能特性。通过它提供的硬件库、线程支持、中断支持等, 阅读全文
摘要:
笔式电感位移传感器不能单独使用,必须与数据采集器连接,才能采集信号,通过与位移传感器连接头相连, 多通道数字量采集器获取传感器识别电压信号。 ## 位移传感器采集 采集卡采集到的电压值, 需要将电压转成位移量. 转换是通过多项式拟合完成的, 每个传感器出厂时候都有一组(5个值)拟合参数, 这些参数需 阅读全文
摘要:
和朋友合作开发一个测量机台产品, 用于测量汽车零件形位公差, 客户的客户是电动汽车第一品牌, 我负责上位机开发, 历时2个月, 完成上百次的commit. 测量机台收集100多个位移传感器数值, 算出20多个关键形位公差参数(平面度/圆柱度等). 项目整体时间虽紧, 但代码质量上没有妥协, 软件层次 阅读全文
摘要:
### 问题背景 在工控项目中, 往往需要加载一个背景图像用于模拟设备或图纸, 在其上需要动态放置一些标签或按钮, 通常的做法是, 使用Panel组件通过设置 BackgroundImage 属性加载背景图, 经常碰到的问题是, 窗口做resize或动态增加/删除Label时, 界面会有非常明显的屏 阅读全文
摘要:
### 生成 dump 文件 1. 如果要分析 32bit 程序问题, 需要使用 32-bit dump文件, 比如 taskmgr.exe 32bit版, DebugDiag 工具. taskmgr.exe 32bit版路径是" " C:\Windows\SysWOW64\Taskmgr.exe 阅读全文
摘要:
一直很喜欢 dbeaver 的一个自动提取剪切板SQL功能, 该功能去除多余C#/Java中SQL字符串加号和双引号. 但升级到dbeaver 23之后, 发现该功能默认被关闭了, 开启功能见下图: ![](https://img2023.cnblogs.com/blog/194640/202306 阅读全文
摘要:
## obfuscation tools .net 社区有很多混淆工具, 比如这个清单: 比较有名的商业工具有 .NET REACTOR , 开源软件中, 最受欢迎的有: - obfuscar - 老版 ConfuserEx - **(推荐)**新版 ConfuserEx2 ## obfuscar 阅读全文
摘要:
## Nlog 日志组件的使用 这个博文关注 .net framework下的NLog日志组件的使用. 在项目中需要将日志写到日志文件中, 另外一些重要信息要显示在界面上. 使用 NLog 可以轻松做到这点. [NLog wiki 页面](https://github.com/NLog/NLog/w 阅读全文
摘要:
.net framework 下可以使用 Ninject 作为 DI 容器, 适合作为依赖注入的对象应该是功能型class, 而不是数据型class, 由DI 容器自动管理不同类的依赖关系和具体类的实现子类. 关于构造函数和属性注入的对比 不推荐属性注入的主要原因是: 测试困难: 属性注入导致依赖硬 阅读全文