[置顶]python知识导航贴,持续更新

[置顶]C# 语言高级特性知识导航贴,持续更新

[置顶]netMarketing类库: 类库说明

[置顶]本站视觉相关教程整理贴子,持续更新

[置顶]C++相关导航贴,持续更新

[置顶]本站收费服务公告(netMarketing源码,工业自动化行业培训班等)

[置顶]2020年勇哥的机器视觉实验项目清单(大纲)

[置顶]本站连载贴子系列,持续更新中……

[置顶]勇哥的免费视频教程清单

[置顶]勇哥在B站发布的视频清单

[置顶]运动控制专题,持续更新

载自知乎一篇非常好的介绍依赖倒置原则的文章

勇哥注:本文为引用,但是勇哥穿插编写了C# 版的演示代码。作者:Mingqi链接:https://www.zhihu.com/question/23277575/answer/169698662要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion Principle )。什么是依赖倒置原则...

问题:Spring IoC有什么好处呢?(知乎贴子文摘)

知乎问题:Spring IoC有什么好处呢?比如这个例子: B{ A a=new Aimpl(); //其他代码 } B{ A a; //其他代码 public void setA(A a) { this.a = a; } } 第一个是直接合成使用A 第二个是用控制反转进行管理 书上只讲理论,我现在都不能体会Spring的IoC和不用相比有什么好处,能具体说...

七大设计原则(2)依赖倒置原则

勇哥注:此文转载自 https://zhuanlan.zhihu.com/p/466223262 勇哥只是把代码转成了C#。控制反转(IoC)是什么?「反转」到底反转了什么?Spring和IOC之间是什么关系?依赖注入(DI)和依赖倒置原则(DIP)又是什么?IOC、DI和DIP有什么关系?1. 控制反转(IoC)1.1 一个典型案例介绍「控制反转」之前,我们先看一段代码 public cl...

依赖倒置(反转)(DIP),控制反转(IoC),依赖注入(DI),IoC容器

勇哥注:面向对象设计(OOD)有助于我们开发出高性能、易扩展、易利用的程序。其中,OOD有一个重要的思想就是依赖倒置原则(DIP),并由此引申出IoC、DI及IoC容器等概念。现在初步了解 一下这些概念:依赖倒置原则(DIP):一种软件架构设计的原则,是一种抽象概念。 (DIP缩写是指 Dependency inversion principle)控制反转(IoC):一种设计模式,是DIP的具体...

依赖注入 和 new 一个实例有什么区别吗?

勇哥注:这是知乎里一个人的困惑,答者回复非常好,特摘抄如下。问题: 今天刚看了一下 依赖注入 的概念,大致就是说如果一个服务类 A 需要另外一个服务类 B 中的方法, 那就直接将这个 B 这个类注入到 A 这个类中,但是我一想,这不就是在 A 类中 new 一个 B 类吗?? 或者可以直接在 A 类的构造器中 new 一个 B 类,然后 A 类中的所有方法都可以使用这个属性。 依赖注入和这...

设计模式-02.经典设计原则-第一节-单一职责原则,开闭原则,里式替换,接口隔离

文章目录设计模式经典设计原则-第一节单一职责原则(SRP)如何理解单一职责原则?如何判断类的职责是否足够单一?类的职责是否设计得越单一越好?开闭原则(OCP)如何理解“对扩展开放、修改关闭”?修改代码就意味着违背开闭原则吗?如何做到“对扩展开放、修改关闭”?如何在项目中灵活应用开闭原则?里式替换原则(LSP)如何理解“里式替换原则”?哪些代码明显违背了 LSP?接口隔离原则(ISP)如何理解“接口...

从信息论角度看“高内聚、低耦合”

作者:无忌链接:https://zhuanlan.zhihu.com/p/648004207来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。近期了解了不少关于压缩算法和程序设计的大佬文章,突然发现这两个内容是可以在某个角度达成一致的,因此写此文对想法进行记录,希望给大家带来一定的启发。首先,非常感谢大佬们愿意花费自己的宝贵时间,分享珍贵的经验。互联网之所以伟大,就是因...

从“高内聚,低耦合”说起

作者:Thoughtworks中国链接:https://zhuanlan.zhihu.com/p/621391620来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。从“高内聚,低耦合”说起记得在上学的时候,⽼师就说过“⾼内聚,低耦合”,但当初对这句话的理解⽐较浅显。⼯作之后,为了说服别⼈采⽤⾃⼰设计的⽅案,常常说“……这样就做到了⾼内聚,低耦合……”。随着⼯作经验越来...

伺服电机和步进电机的常用术语和计算式

编码器分辩率 23位编码器的分辨率为8388608电机的额定转速 看电机铭牌,伺服电机一般是3000转额定转速 丝杆螺距/导程 丝杆转一圈的距离既看螺距又看导程,对于单头丝杆来说,螺距和导程在数值上是一样的; 对于多头螺纹来说,导程等于螺距乘头数 丝杆导程和精度 。导程和负载的速度、伺服电机的最大转速和脉冲当量都是相关 。导程越大,速度越快,但是负载...

带ROI跟随的找边测试代码(halcon代码演示)

带ROI跟随的找边,是机器视觉中最常用的功能。如果各位对勇哥这段代码有疑问,欢迎留言讨论。载入第一张图片,执行找边的结果。载入第二张图片,角度与位置与上张不同。可以看到ROI是跟随的,执行找边。这里勇哥没有再找第二条边,因为方法是一样的,就不重复了。完整测试代码如下:找边的算子find_line是个外部过程,其代码见勇哥另一个贴子:Halcon学习(27-2)halcon测量技术:找线在这个找边的...

凹坑缺陷检测

原图来自Ihalcon论坛一个非常小的凹坑位于图中间- 算法思路 -利用灰度统计特性进行缺陷检测原图噪声比较大,进行高斯滤波计算灰度统计特性intensity (ImageGauss, ImageGauss, Mean, Deviation)利用灰度统计特性,检测亮缺陷亮缺陷检测代码如下*亮缺陷 threshold(ImageGauss, LightRegion, Mean + 3.5*Devi...

工业相机6芯I/O口,电源口的接线方法

GigE接口的相机,可以采用Poe供电,也可以采用6芯口供电。如果采用Poe供电,则缺点是需要一个支持poe功能的专用网卡,好处是一根网线搞定,不需要另接电源。如果使用6芯口供电,则需要提供额外的电源。下图是带poe功能的网卡。注意看这种网卡上是需要接额外的电源的,就像现在的显卡一样,需要接一路额外的供电。2021/2/21 勇哥注:现在已经有POE供电的小模块可以用了(某宝上搜了一款如下图所示)...

C# gdi自定义控件:阀门

勇哥注:阀门控件可用于组态页面,构建自动化逻辑的控制面板。基本套路就是用GDI代码进行绘制。下图是组态页面:下图是阀门控件的绘制效果。它有横向与竖向两种形态。注意多边形的5个点如下:其它没什么好讲的。源码:using System; using System.Collections.Generic; using System.ComponentModel; using System.Draw...

勇哥的视觉实验: 不用标定板的简易2点标定(一)

这种两点简易标定是参考《http://www.skcircle.com/?id=504》来进行的。勇哥用CAD画了一个原理图如下:在上图中:黄色x'oy'坐标系是相机坐标系。白色xoy坐标系是机械坐标系。30度为两个坐标系之间的夹角,(x0,y0)为图像坐标原点到机械坐标原点的距离,图上距离为(30,30)。P点在相机坐标系中是(20,20),在机械人坐标系中是(57.26,37....

编码器的分辨率、精度和可重复性

分辨率分辨率是可以显示或测量的最小刻度单位,这个相对来说最好理解。用机械时钟打个比喻:时针的分辨率是小时,分针的分辨率是分,秒针的分辨率是秒。又比如说同样一筐苹果,在路边摊的杆秤称是两斤半,拿到菜场的台秤上称是两斤四两,放到超市的电子秤上则是1210克。 图:钟的指...

汇川SV660伺服及配套的马达选型

马达型号说明:马达铭牌:马达额定功率规格:伺服型号说明电机出线方式配套电缆选型...

halcon引擎学习笔记(七)在在HDevEngine/C#中使用实时编译器JIT

勇哥这套halcon引擎的学习笔记贴子共七篇,它是在官方指导文档《http://www.skcircle.com/?id=1343》的基础上学习编写而成的笔记。只是有一篇讲解怎么调用向量变量的没有加入,因为勇哥实在不知道这个向量变量有啥子用。以后如果搞明白了再加入吧。2020/7/3勇哥注:原来halcon中的向量就是个容器,跟c++标准模板库中的那个向量是一致的。第八篇加上来吧halcon引擎学...

HALCON error #5154: Wrong values for image area in operator get_window_extents

对于使用docking的童鞋来讲, 如果你的窗体中使用了halcon窗体控件, 就可能出现本文所示的错误.这个时候你应该是双击或者拖动了窗体标签吧?! 然后就会出现下面的错误.HALCON error #5154: Wrong values for image area in operator get_window_extents你只有两个选择: 要么找到你的包含halcon窗体控的窗体为啥会出现...

C# 含有PropertyGrid控件的对话框,如果操作选择下拉框,则此属性窗口再也关闭不了

C# 的 PropertyGrid是不是用得很爽。但是有一个缺陷一直让勇哥很不爽。当选择项是一个枚举或者List<string>的时候,用户可以点击下拉框进行选择。但是,如果使用这个下拉框,会有很大概率关闭不了这个属性窗体。即你按此窗体的关闭按钮,窗体也无法关闭。整个程序都被卡住了。只能用系统的任务管理器把程序强制关闭了。这种bug只会在推出下拉框的时候出现。怎么看都像是此控件固有的b...

Task.Factory.StartNew为啥同一次添加10几个线程,超过8个后面添加的线程变开始变慢

勇哥描述一下:如下面代码,当循环Task.Factory.StartNew到第9个的时候,会发现要隔约1秒才可以添加第9个,后面的第10,11,12,13,14 都要间格较长时间。如果你把下面代码中的while死循环去掉,则15个线程瞬间添加完成。这是什么原因呢? for (int i = 0; i < 15; i++) { var...

VS团队资源管理器无法同步,错误为:无法拉取,因为本地和远程分支已更改

勇哥今天用vs团队资源管理器“同步”时出现一个不一样的错误。错误如下:vs的输出窗口报告的完整信息如下:已在存储库 D:\xxxx 中本地创建提交 e76d4178 Remote: Enumerating objects: 43, done. Remote: Counting objects: 2% (1/43) Remote: Counting obje...

固定相机拍照,机器人定位取料的原理解释

如图1。我们假设矩形就是电池。则这个电池是作为模板电池,其摆放的位置、机器人吸嘴过来取的位置都是做为模板位置。B1是模板特征点。本例子我们以电池左边与顶边的相交点做为特征点,且以顶线做为特征点的U。 (图1)图2中,电池故意旋转一定角度放置。此时的B2点为当前电池的特征点。此时当前电池的特征点B2的U坐标减去模板特征点B1的U坐标,取得了相差...

人这一辈子最重要的是什么?

三岁那年,我紧握着手中的棒棒糖,坚定的认为那最重要五岁那年,我花了整整一个下午逮住那只蜻蜓,那一刻,它好像是最重要的七岁那年,我看着同桌手中的奖状,带着羡慕和一点点嫉妒,觉得那也许是最重要的。九岁那年,仰躺在树荫下,阳光斑驳的洒在脸上,一个悠闲的暑假于我而言是如此重要十三岁那年,我意识到,重点高中的录取通知书对我的人生很重要十六岁那年,坐在教室里,微风穿堂,盯着前排姑娘的马尾出了神忽然觉得就这样一...

C# GDI绘制控件,基类控件(1)

勇哥注:所谓的基类控件,就是不从其它控件继承的,而是继承UserControl的控件。控件外观如下:此控件有如下5个属性:有关用户控件,下面这篇文章讲得很清楚:https://blog.csdn.net/sl1990129/article/details/78959264 源码:using System; using System.Collections.Generic; using Sys...

C# winform窗口打开设计器的等待时间超长是什么原因?

勇哥注:C# 在解决方案管理器中双击winform,打开设计器的等待时间超长。。。有时候甚至要等十几分钟这么夸张。。。另外,如果你使用vs2022打开相同的工程,发现打开winfom的速度就变得飞快了!但是用vs2015, vs2017都一样慢。经过勇哥长时间的摸索,此问题的原因是:首先,你的这些winfrom数量多并不是原因。而是因为你的某些winform可能存在控件数量太大。注意,即使当前你...

C# DataGridView控件中DataGridViewComboBoxColumn 怎么样使用下拉更改事件

勇哥注:这个问题勇哥在网上找了许久。假设A、B单元格都是下拉DataGridViewComboBoxColumn。我想A单元格选中一个内容,B单元格进行刷新列表。如果是DataGridView默认设置下,你会发现:CellEndEdit、CellClick、CellMouseDown、CellMouseUp这些都做不到完美的效果。最多是能做到点A后,然后点击一下B单元格,才能看到刷新效果。本文主题...

C# 让datagridview的DataGridviewComboBoxColumn即可以下拉,还可以输入内容

让datagridview的DataGridviewComboBoxColumn即可以下拉,还可以输入内容这个需求是有必要的。勇哥参考了一些网上的资料,证明winform还是可以实现此功能的。虽然操作上有点不太方便,比如输入内容后回车不能结束编辑,需要点内外的单元格结束编辑。但是好歹是实现的要求,而且不用重写一些方法。效果如下:演示代码: public partial class Form1 :...

勇哥谈下去除List的重复元素的问题

勇哥注:去除List的重复元素的问题是比较常见的需求,C#有标准的做法,以后不要自己写了。 public class Student { public string Name { get; private set; } public int Id { get; private set; } public string Hobby...

勇哥的C#版继承Treeview的带按钮的树形控件(带源码)

勇哥注:此控件是继承TreeView控件重写的用户组件,主要特点是可以在节点文本右边添加按钮。按钮本身就是一个Button类,可以设置按钮的显示相关的属性,以及事件等。此控件可以方便提供IO、气缸、轴的测试功能,不用双击弹出另一个窗口做这些事。有效的提升了用户体验。使用方法说明:(1)此控件带一个WpfTreeHelper类,以方便操作控件(2)初始化树时,无论是根结点,还是子节点,都使用AddN...

C# treeview控件的NodeMouseClick、Click事件的问题(单击后SelectedNode不是当前节点 ,有可能为null或者是上一次的节点)

这个问题浪费了勇哥一个小时的时间。即你在NodeMouseClick、Click事件中获取SelectedNode,有可能为null或者上一次的节点。希望实现点击TreeView控件下的不同子节点,显示其对应的内容。但发现在TreeView控件的MouseNodeClick事件中利用(TreeView)sender).SelectedNode.Name获得子节点的Name与实际点击的子节点并不一致...
会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864