原理示教
文章平均质量分 74
DrGraph
这个作者很懒,什么都没留下…
展开
-
DrGraph原理示教 - OpenCV 4 功能 - 形态操作
OpenCV作为一个基础的或通用的图像处理,那肯定是需要支持不同的需求,象刚说的这些主体差异,功能也是存在了,只不过采用了相应的所谓专业术语来进行称呼,如梯度、礼帽与黑帽。这些结果可以为主体,但很多地方还想看看边界或轮廓,那就需要在这些主体之间进行差值,或是减法操作,这样,结果就是边缘,就象两个大小不同的同心圆,差值后就得到圆环。从OpenCV图像处理基本知识来看,膨胀腐蚀操作后,还有形态操作,如开运算、闭运算、梯度、礼帽与黑帽,感觉很多,其实,本质上就是批处理操作,如。如,梯度 = 膨胀 - 腐蚀。原创 2024-01-15 14:02:45 · 499 阅读 · 0 评论 -
DrGraph原理示教 - OpenCV 4 功能 - 边界填充
这里的核心就是理解borderType,具体就是。今天简单来看一下OpenCV中的边界填充。OpenCV 4 功能 - 边界填充。其实不用记,实验一下就了解。原创 2024-01-12 16:07:36 · 527 阅读 · 0 评论 -
DrGraph原理示教 - OpenCV 4 功能 - 直方图
OpenCV直方图是一种可以对整幅图的灰度分布进行整体了解的图示。它是带有像素值(从0到255,不总是)的图在X轴上,在y轴上的图像对应的像素个数。通过观察图像的直方图,我们可以直观的了解图像的对比度、亮度、亮度分布等。在直方图中,横坐标表示图像中各个像素点的灰度级,纵坐标表示具有该灰度级的像素个数。直方图的左边部分显示了图像中较暗像素的数量,右边区域显示了更明亮的像素。直方图是非常常用的图像处理方法,有时在很多图像预处理中能起到特别好的效果。原创 2024-01-06 20:44:20 · 1209 阅读 · 1 评论 -
DrGraph原理示教 - OpenCV 4 功能 - 膨胀腐蚀
这个概念对于没太多理论支持的程序员来说,术语太多,可以简单理解就是,膨胀与腐蚀是相对于白色区域而言的。如果膨胀,白色区域就象面团发酵一样会胀大,但空间就那么大,可能两个面团就会挨上合并成一个面团了。如果腐蚀,就象拉面,原来一根面条,可能就断成两根,当然断的地方肯定是从细处断。原理很简单,代码也很简单,膨胀与腐蚀分别对应两个函数:dilate与erode,这两个函数的参数都一样。这些处理有些是概念上的,有些是原理上的,也有形态上的,那就看用途与目的了。在二值图的结果基础上,可针对性处理。原创 2024-01-04 10:27:40 · 487 阅读 · 0 评论 -
DrGraph原理示教 - OpenCV 4 功能 - 颜色变幻
二值化是逐像素处理,而逐像素处理会有很多效果,这主要是给人眼看的,因为像素值的变化,直观的就是图像变化,比如颜色。原创 2024-01-03 09:17:06 · 528 阅读 · 0 评论 -
DrGraph原理示教 - OpenCV 4 功能 - 二值化
二值化,也就是处理结果为0或1,当然是针对图像的各像素而言的1或0,对应于有无,也就是留下有用的,删除无用的,有用的部分,就是关心的部分在图像处理中,也不仅仅只是1或0,因为这两个值看起来都是黑的,人眼很难分辨清楚,那就放大一些,255或0,黑白就出来了目标识别、图像分割、目标提取等后续应用,很多会基于二值化的结果。所以图像分析的二值化处理是一个重要环节。原创 2024-01-02 23:03:33 · 638 阅读 · 0 评论 -
DrGraph原理示教 - OpenCV 4 功能 - 阈值
参数4:阈值的方式,主要有5种,分别为cv.THRESH_BINARY、cv.THRESH_BINARY_INV、cv.THRESH_TRUNC、cv.THRESH_TOZERO、cv.THRESH_TOZERO_INV。有时间看下源码就可以不用猜测了。二进制阈值化:选择一个特定的阈值量,大于该阈值的像素点的灰度值设定为最大值(如8位灰度值最大为255),小于该阈值的像素点的灰度值设定为0。反阈值化为0:与阈值化为0类似,只是像素点的灰度值大于该阈值的不进行任何改变,而小于该阈值的,其灰度值全部变为0。原创 2024-01-01 14:05:36 · 1324 阅读 · 0 评论 -
DrGraph原理示教 - OpenCV 4 功能 - 单通道图
在OpenCV中,Mat类的channels实际上和每个元素上存储的数据有关,例如存储的是Point3f,channel就自动为3。具体来说,图像是由一个个像素点堆积而成的,而一个像素点,又是由RGB颜色混合而成的。从数学的角度来看,结果都是 f(R, G, B, A),单通道是R/G/B/A中的一个,灰度是其余逻辑,如0.299×R+0.587G+0.114B。当然,对编程来说,光知道通道数是多少,并没有什么大用,应该要取得某个通道的图像才是目的,这也是各图像的内在本质。这里的通道就是channels。原创 2023-12-31 10:43:46 · 504 阅读 · 0 评论 -
DrGraph原理示教 - OpenCV 4 功能 - 颜色空间
前段时间,甲方提出明确需求,让把软件国产化。稍微研究了一下,那就转QT开发,顺便把以前的功能代码重写一遍。至于在Ubuntu下折腾QT、OpenCV安装事宜,网上文章很多,照猫画虎即可。QT 6支持C++ 17,里面很多C++的新功能,用起来更为舒爽。QT Creator中,代码提示更快捷,代码折叠也很准确QT Creator中,文档生成更方便,配合Doxygen之后,自己都感觉更专业了当然,更让我高兴的是,QT直接支持最新版的OpenCV,以前还一直停留在2.3版。原创 2023-12-30 15:14:35 · 1261 阅读 · 0 评论 -
DrGraph - SVG模块之二:脚本修改
DrGraph - SVG模块之二:脚本修改手动修改脚本控制API脚本代码手动修改为了能明确修改对象,在XML显示的基础上,完成相应的内容更新。比如美工做了一个灯的SVG图,是红色的灯,现在希望将其改为绿色。通过节点选择,选择目标界面对象所对应的XML节点简单尝试一下,将目标节点的style属性修改为 fill:#00FF00,果然相应图元就成为绿色是为手动。脚本控制当然,不能指望用户能用得这么深入,首先光培训就得N长时间,不划算;其次,也不好保存。那就通过脚本方式,比较专业的用户编写原创 2021-03-01 22:36:09 · 282 阅读 · 0 评论 -
DrGraph - SVG模块之一:显示与节点选择
DrGraph - SVG模块之一:显示与节点选择显示SVG编辑生成目标子集SVG对于虚拟面板中的元件,以前采用FLASH技术实现相应显示与交互,通过ActionScript进行通信。现在看来,FLASH好象势微,使用起来有点麻烦,需要一些设置。其次,做FLASH的人也少了,后续也不太方便。那就用SVG来进行改造。显示SVG将SVG解析置于DLL中,应用程序直接调用DLL完成解析并生成PNG,然后再画出显示。UnicodeString filename = FResponseNode->At原创 2021-02-23 23:17:10 · 582 阅读 · 0 评论 -
DrGraph - 新起点
DrGraph - 新起点库图形组态电/气/液路原理图绘制梯形图虚拟面板图原理图与面板图映射脚本图像分析处理3D展示交互操作流程子图提取路径查找模拟电路定量分析数字电路分析虚拟操作故障模拟故障分析与定位潜在通路分析一令一展示...在线安装程序下载又是一年春来到,播种的季节总是信心百倍,立不完的FLAG。游玩的时候进了一寺庙,看到一句话:心以静为贵,欲以寡为贵,穷以志为贵,富以仁为贵。原来喜欢立志是因为穷,心马上就静下来了。心静后,继续立志,今年要把DrGraph软件上一个新台阶,主要做以下几方面:库原创 2021-02-22 11:33:50 · 245 阅读 · 0 评论 -
BS版图形系统 - OpenCV - 第6章笔记
BS版图形系统 - OpenCV - 第6章笔记6. 学习对象分类6.1 技术要求6.2 机器学习概念介绍OpenCV机器学习算法QQ: 2823973696. 学习对象分类对每个分离的对象进行分类训练系统,以便能够学习必需的参数,从而决定将哪个特定标签分配给检测到的对象机器学习的基本概念,以便对具有不同标签的图像进行分类6.1 技术要求6.2 机器学习概念介绍机器学习:计算机无须明确编程就能够开展学习的能力机器学习涉及到人工智能中的模式识别和学习理论,并且与计算统计学有关应用:OCR、原创 2020-09-14 10:11:24 · 300 阅读 · 1 评论 -
BS版图形系统 - Ribbon Gallery
BS版图形系统 - Ribbon Gallery先准备相应图标实现资源配置初步效果上下箭头按钮处理下一步工作今天尝试做一个Ribbon Gallery效果直接参考PPT效果当然,感觉在网页里,占用空间少一些好,所以把各图标间距整小一点。先准备相应图标实现export class TRibbonGallery extends TPanel { rightPanel: TPanel; btnUp: TButton; btnMid: TButton; btnDown原创 2020-09-13 08:43:58 · 292 阅读 · 0 评论 -
BS版图形系统 - OpenCV - 第5章笔记
BS版图形系统 - OpenCV - 第5章笔记5 自动光学检查、对象分割和检测5.1 技术要求5.2 隔离场景中的对象5.3 为AOI创建应用程序5.4 预处理输入图像5.4.1 噪声消除5.4.2 用光模式移除背景进行分割5.4.3 阈值5.5 分割输入图像5.5.1 连通组件算法5.5.2 findContours算法5.6 总结** QQ: 282397369 **5 自动光学检查、对象分割和检测AOI:自动光学检查5.1 技术要求5.2 隔离场景中的对象预处理:噪声消除光消原创 2020-09-12 22:23:14 · 183 阅读 · 0 评论 -
BS版图形系统 - Ribbon工具栏初步
BS版图形系统 - Ribbon工具栏初步组件实现RibbonRibbonTabToolBarButton调用对应的xml运行效果下一步工作QQ: 282397369开始攻Ribbon,毕竟软件有个象样的界面,还是要拿得出手一点点。思路就借鉴DevExpress,简化实现,不整太多的不必要环节。第二个思路就是先实现功能,以后再模块化。组件实现先准备初步要用到的组件。Ribbonexport class TRibbon extends TPageControl { btnApp: TB原创 2020-09-11 10:32:53 · 511 阅读 · 0 评论 -
BS版图形系统 - 整合C++到JS中
BS版图形系统 - 整合C++到JS中C/C++面向WebAssembly编程C++代码加上类的C++代码JS调用代码运行结果QQ: 282397369几个月下来,JavaScript/TypeScript算是基本入门了,也能编一些自认为满意的效果。从正常预期来看,BS版能达到桌面应用的效果,这可作为一个方向。图形的应用场合很多,画电路气路液路图只是其中一个。当然在做的过程中,也比较随意,突然发现可以先做思维导图,然后居然也实现了一个初版。又有点心痒,准备把这个也做得专业一点,至少先达到百度脑图的原创 2020-09-09 23:40:21 · 258 阅读 · 0 评论 -
BS版图形系统 - OpenCV - 第4章笔记
BS版图形系统 - OpenCV - 第4章笔记4 深入研究直方图和滤波器4.1 技术要求4.2 生成CMake脚本文件4.3 创建图形用户界面4.4 绘制直方图4.5 图像颜色均衡4.6 Lomography效果4.7 卡通效果4.8 总结QQ: 2823973694 深入研究直方图和滤波器4.1 技术要求4.2 生成CMake脚本文件4.3 创建图形用户界面Show histogramEqualize histogramLomography effectCartoonize effe原创 2020-09-09 14:33:17 · 165 阅读 · 0 评论 -
BS版图形系统 - OpenCV - 第3章笔记
BS版图形系统 - OpenCV - 第3章笔记3 学习图形用户界面3.1 技术要求3.2 OpenCV用户界面介绍3.3 OpenCV的基本图形用户界面3.4 QT图形用户界面3.5 OpenGL支持3.6 总结QQ 2823973693 学习图形用户界面显示图像结果,处理用户与图像的交互。3.1 技术要求3.2 OpenCV用户界面介绍基于原生用户界面的基本界面: GTK基于QT库的略微更高级的界面3.3 OpenCV的基本图形用户界面highgui模块#include &原创 2020-09-08 10:13:47 · 116 阅读 · 0 评论 -
BS版图形系统 - OpenCV - 第2章笔记
BS版图形系统 - OpenCV - 第2章笔记2 OpenCV基础知识导论2.1 技术要求2.2 基本CMake配置文件2.3 创建一个库2.4 管理依赖项2.5 让脚本更复杂2.6 图像和矩阵2.7 读/写图像2.8 读取视频和摄像头2.9 其他基本对象类型VecScalarPointSizeRectRotatedRect2.10 基本矩阵运算2.11 基本数据存储2.12 总结QQ 2823973692 OpenCV基础知识导论2.1 技术要求2.2 基本CMake配置文件2.3 创建一个库原创 2020-09-07 07:41:03 · 141 阅读 · 0 评论 -
BS版图形系统 - OpenCV - 第1章笔记
BS版图形系统 - OpenCV - 第1章笔记1 OpenCV入门1.1 了解人类视觉系统1.2 人类如何理解图像内容1.3 能用OpenCV做什么1.3.1 内置数据结构和输入/输出1.3.2 图像处理操作1.3.3 GUI1.3.4 视频分析1.3.5 3D重建1.3.6 特征提取1.3.7 对象检测1.3.8 机器学习1.3.9 计算摄影1.3.10 形状分析1.3.11 光流算法1.3.12 人脸和对象识别1.3.13 表面匹配1.3.14 文本检测和识别1.3.15 深度学习1.4 安装Open原创 2020-09-06 17:48:01 · 294 阅读 · 0 评论 -
BS版图形系统 - 矩形
BS版图形系统 - 矩形QQ: 282397369Html5的Canvas,最基本的功能可以支持画矩形,其实也就那几个参数来回设置。export class TRectangle extends TTwoPointMeta { cornerRadius: number = 0; // 圆角半径 Initial() { this.setClassType(CbwClassType.Rectangle); super.Initial(); }原创 2020-09-02 11:07:42 · 335 阅读 · 0 评论 -
BS版图形系统 - 画线
BS版图形系统 - 画线一晃两个月过去了,儿子也考了个喜欢的大学,重新,又稳定了下来。我也重操旧业,编点小程序。时不时发个小博客,自娱自乐一下。今天处理图元 - 线。话不多说,直接上代码。export class TLine extends TTwoPointMeta { beginArrow: TArrow = new TArrow; endArrow: TArrow = new TArrow; Initial() { this.setClassType(原创 2020-09-01 23:01:38 · 675 阅读 · 0 评论 -
BS版图形系统 - 中文录入
BS版图形系统 - 文字录入可见字符录入中文输入QQ: 282397369可见字符录入初步感觉入门,不过问题是一个接一个。因为各个控件都是自画的,所以想要录入的话,需要处理键盘事件。这个倒是容易,直接监听相应事件即可。网上资源很多。借鉴实现一下,采用一个输入控件,绑定其 this.keyBoardInput.addEventListener('keydown', this.doKeyDown, true); this.keyBoardInput.addEventL原创 2020-07-03 23:09:18 · 186 阅读 · 0 评论 -
BS版图形系统 - 界面控件配置
BS版图形系统 - 界面控件配置界面控件考虑资源配置化XML资源配置加载下一步任务QQ: 282397369界面控件考虑有了属性浏览器,下来就该处理工具栏了。一个直观感觉,网页留给程序的空间,要比应用程序少。网页在浏览器这个程序中运行,不同的浏览器,提供相应的界面,占据标题、工具栏位置,甚至书签与侧栏。所以做网页程序的时候,尽量能将工作区整大一些。当然,如何整应该是UI设计的事,技术层面还是关心如何实现的问题。在属性浏览器的基础上,初步实现了一个VCL的JS框架。但新建控件,还是要写一堆代码来控原创 2020-07-02 10:11:51 · 1183 阅读 · 1 评论 -
BS版图形系统 - 属性浏览器
BS版图形系统 - 属性浏览器** QQ: 282397369 **原理示教项目基本没跑,6月初确定动手。两条线同时进展:管理系统和图形系统。管理系统有正常前后端即可,图形系统还是主要的业务展示场合,一般的管理系统并不涵盖这些功能,所以干脆从头开发。经过半个月的摸索尝试,最终选定TypeScript作为图形工具,首先就要解决属性修改需求,即PropertyGrid。网上也有现成的PropertyGrid,但用起来代价太大,那就自己来做一个,也算是BS系统入个门。在以前用uniGUI的基础上,半个原创 2020-06-30 13:38:16 · 382 阅读 · 0 评论