自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C# lambda表达式

lambda表达式是匿名函数的升级版,匿名函数参见[C# 匿名函数。](https://blog.youkuaiyun.com/sc_1313/article/details/145268853?spm=1001.2014.3001.5501)lambda表达式比匿名函数形式更简单,功能更强大。

2025-01-21 19:38:11 494

原创 C# 匿名函数

匿名函数(anonymous method),顾名思义,就是没有名字的函数。或者没有名字的代码块。在C#中,我们使用`delegate`关键字来定义匿名函数,并且匿名函数可以赋值给委托类型的变量。委托参见[C# 委托。](https://blog.youkuaiyun.com/sc_1313/article/details/144375777?spm=1001.2014.3001.5501)

2025-01-21 11:42:41 1418

原创 C# 事件

事件(`event`)让类或对象具备在某件感兴趣的事发生时通知其他类或对象的能力,触发事件的类(让事件发生的类)叫做发布者(`publisher`),处理事件的类叫做订阅者(`subscriber`)。

2025-01-06 10:45:03 1032

原创 C# 委托

委托,在百度百科中的释义是“指把事情托付给别人或别的机构(办理)”,也就是说,一件事,自己不亲自做,而是将这件事交给第三方去做。比如说老板A要发表演讲,需要写一个演讲稿,A可以选择自己写,也可以选择让员工B去写,那么A让B写演讲稿这个行为就是委托。在维基百科中,有这么一句话,是专门对c#中委托(delegate)的释义。.Net Framework上的程序设计语言如C#、Visual Basic的一类数据类型用于存储多个函数指针,称为委托(delegate)。

2024-12-11 15:25:11 1760

原创 FileNotFoundError: [WinError 2] 系统找不到指定的文件解决方案

在windows终端运行python程序时,报错FileNotFoundError: [WinError 2] 系统找不到指定的文件,但是检查完文件路径后发现并没有错,考虑到是不是需要加环境变量,以及通过sys.path.append在python文件中加上引用的其他文件的绝对路径。找到python源代码中的subprocess.py文件,将shell=False改为shell=True,再次终端运行程序,成功!比如我安装的python版本是3.7,对应的代码在第684行。

2024-12-10 10:01:43 2753

原创 visionpro实践项目(八)车牌识别

使用图像转换工具,将彩色图转换为灰度图;使用模板匹配工具和定位工具定位车牌位置;使用OCR文字提取工具,对定位部分的字符进行提取;使用标签工具,将结果显示出来。只对图像的边缘进行训练,因为中间的字符每个图像是不一样的。添加图像转换工具、模板匹配工具、定位工具。1.需求:将车牌中的字符提取出来。添加标签工具,将识别结果显示出来。每张图片都可以准确识别出来了。这一节出现了一个新工具OCR。

2024-12-01 11:43:19 212

原创 visionpro实践项目(七)书签类型检测

可是第一个模板工具匹配铁的部分也要进行全局的搜索啊,这就是1对3的问题了,按照老师的方法,只需要进行一次全局的搜索,而按照我的方法,需要进行3次全局的搜索,显然老师的方法更优雅。灰度图输入给模板匹配工具,该工具是对铁的部分,也就是各类书签的相似部分进行模板匹配,然后加上定位工具,这一套组合拳下来,就可以定位到每张图片中书签所在的位置了。老师的思路是这样的,先使用图像转换工具将彩色图转换为灰度图,然后使用模板匹配工具对书签的下部分(铁的部分)进行训练,加上定位工具。好的,就改成这样了,主打一个听劝。

2024-12-01 09:44:17 392

原创 visionpro实践项目(六)零件瑕疵检测

为什么要使用这两个工具,因为后面要使用工具局部的去判断零件的3个局部区域是否存在瑕疵,我现在有一点经验,好像凡是这种需要用到工具去进行局部检测的,都需要用到模板匹配工具和定位工具。使用直方图工具判断瑕疵,需要使用3个直方图工具分别进行判断,直方图工具的工作原理是会统计出工具作用域内的像素分布情况,有瑕疵和没有瑕疵的零件瑕疵区域的像素分布肯定是不一样的,因此就可以根据像素特征进行瑕疵检测。添加结果分析工具,根据3个直方图工具的平均像素值,判断是否存在瑕疵。使用结果分析工具进行分析,使用标签工具显示结果。

2024-11-29 21:00:00 243

原创 visionpro实践项目(五)零件孔位数量统计

然后添加斑点工具,斑点工具的作用域是整张图像,我的想法是这样的,不是要找出图像中的几个孔嘛,对于上面这张图来说,就是找出4个孔,那么就可以用斑点工具直接根据面积过滤掉其他的不是孔的区域,感觉很完美是不是?视频中的解法是这样的:添加模板匹配工具,添加定位工具,然后添加斑点工具,是添加两个斑点工具,分别用来找小孔和大孔,也就是说两个斑点工具的作用域是只作用在小孔和大孔的区域。需要注意的是,训练区域使用选择零件的下半部分即可,因为有的图像中,零件的上半部分看不到,所以选择整个零件进行训练,反而识别效果不好。

2024-11-29 20:04:31 230

原创 visionpro实践项目(四)骰子点数统计

2.解决思路:先使用图像转换器工具,将彩色图像转换为黑白图像;然后使用斑点工具,进行斑点分割,计算出点数;最后使用标签工具,显示结果。打开电子模式,这样程序就可以实时的运行了,可以实时看到调整的效果。直观的感受是图像变得更清晰,色调更冷了哈哈。极性设置为白底黑点,因为我们要检测白色面上黑色的点数。可以看到,侧面的点也会包含在内,因此需要进一步地过滤。我们发现图片的最外面的框会包含,根据面积将它筛选掉。添加图像转换器工具,输入彩色图像,输出黑白图像。1.需求:统计每个骰子上的点数,并显示。

2024-11-28 16:19:35 142

原创 visionpro实践项目(三)统计硬币金额

认真分析图片会发现,图片中各种金额硬币的大小区别是很大的,而且同一张图片中,1元的硬币可能同时存在正面和反面,因此我们在训练模板时,不应该考虑硬币的内部特征,只需要根据硬币的边缘特征(大小)来匹配即可,需要用到图像掩膜。然后显示结果可以分为无脚本和有脚本的方法,无脚本的方法使用visionpro的标签工具(高版本才有),有脚本的方法使用c#脚本。图片中的硬币有1元,5角,1角三种金额,那就需要我们用模板匹配工具训练出三种模板,然后分别去进行匹配。查看训练结果,会发现,是根据外边缘的两条轮廓线来进行匹配的。

2024-11-28 10:39:37 375

原创 visionpro实践项目(二) 模板匹配工具 定位工具 找圆工具 标签工具

.

2024-11-27 11:15:44 30

原创 visionpro实践项目(一)进阶 使用c#脚本显示零件宽度信息

中,我们是使用标签工具,将测得的零件宽度信息显示在图片上,在这篇文章中,我们换一种方法,使用脚本工具来显示宽度信息。这就涉及到写代码了。添加一个工具块,将模板匹配工具、定位工具、卡尺工具都放进去。ToolBlock相当于一个工具箱,将几个工具都容纳进来。将Job中的标签工具删掉,就只剩下模板匹配工具、定位工具、卡尺工具了。获取卡尺工具的信息,并设置标签工具的属性。将标签放置到图像上。

2024-11-26 23:09:58 309

原创 visionpro实践项目(一) 模板匹配工具 定位工具 卡尺工具 标签工具

导入定位工具。该工具的InputImage是当前运行的原始图像,第二个参数的输入是模板匹配工具的GetPose,会将当前的图像相对于模板图像的位姿信息给到定位工具,定位工具的输入给到卡尺工具。这样卡尺工具就获得了包含相对于模板图像相对位姿信息的一张图像了。

2024-11-26 22:05:56 511 1

原创 visionpro官方示例分析(三) 模板匹配工具 图像掩膜

图片中,一共有6个物体,每个物体的形状都是近似正方形,每个图形的内部都是由很多密密麻麻的不规则的原点组成。那么我们就想啊,既然所有的物体都有一个共同的特征,正方形,那么我们能不能仅仅根据这一个特征来进行模板的训练和匹配呢?这可怎么办呢,如果我调高阈值的话,这个图片是能正确识别了,但是别的图片又会少识别。2.解决思路:先选择一个图形进行模板训练,然后用训练的模板去进行匹配。抓取训练图像,训练模板。但是这张图片识别有问题,会多识别出来一个。所有图片中的形状都可以识别出来了。查看一下图片的匹配特征。

2024-11-25 18:04:47 421

原创 visionpro官方示例分析(二) 模板匹配工具参数调节

模板图像和这张图像的区别是,模板图像的背景颜色是黑色的,零件较背景颜色亮;这张图像的背景颜色是白色的,零件较背景颜色暗。极性是指特征图形到背景的颜色过渡情况,对于模板图像来说,它的极性是由亮过渡到暗;对于这张图像来说,它的极性是由暗过渡到亮。因此模板图像的极性与这张图像的极性并不相同,如果我们不忽略极性的话,就无法进行匹配。当然,勾选忽略极性会增大模板匹配的适应范围,但是,同时也损失了时间,试想一下,原本通过极性这一条件被排除在外的图像现在需要考虑在内了,查找时间自然就增加了。

2024-11-25 17:10:35 882

原创 visionpro官方示例分析(一) 模板匹配工具 缺陷检测工具

使用CogPMAlignTool工具,该工具是模板匹配工具,见名知意,所谓模板匹配工具就是说先使用该工具对一张图像建立模板,然后用这个模板在其他图像上进行匹配,匹配上了就说明找到了,匹配不上就说明没有找到。

2024-11-25 11:11:31 1118

原创 C# new

在c#中,new是关键字之一,new关键字主要有以下两个用途:运算符、修饰符。

2024-11-20 12:28:03 855

原创 22岁小小的人生感悟 随记

可能出错就一定会出错。“关键时候掉链子”这句话真不是白给的,好像任何侥幸心理都会受到上天的惩罚。

2024-11-08 17:46:55 160

原创 C# 值类型

类型(Type)又叫数据类型(Data Type)。A data type is a homogeneous collection of values,effectively prensented,equipped with a set of operations which manipulate these values.c#类型分为值类型和引用类型,值类型有结构体和枚举,引用类型有类、接口、委托。

2024-10-29 18:59:17 1636 7

原创 引用变量与实例

引用变量即变量类型为引用类型的变量,在c#中,引用类型有class、interface、delegate。引用变量存储对实际数据的引用,也就是说引用变量存储的并不是实际的数据,而是实际的数据在内存中的地址。

2024-10-29 10:34:24 478

原创 visionpro篇 PMAlign工具

和其他的模板定位技术一样,PMAlign首先训练一个模板,然后在其他图片中定位与该模板相匹配的部分。当然,和其他模板定位技术不同的是,PMAlign不是基于像素而是基于特征进行模板匹配的,这样可以更加快速和准确地实现模板匹配。而基于像素的一个明显的缺点是:如果图像发生了移动、旋转或者缩放,那么这种方法将不再准确和有效。基于像素:我们都知道,在手机、电脑中显示的图片都是由很多像素组成的,那么很显然,如果图片中的图案发生移动、旋转或者缩放,各位置的像素值会发生变化,像素量也可能会增多或者减少。

2024-09-27 08:59:31 1319

原创 docker run hello-world,“Unable to find image ‘hello-world:latest‘“解决方案

docker run hello-world,"Unable to find image 'hello-world:latest'"解决方案

2024-09-03 10:42:34 957

原创 C# 类(二)——成员:字段、属性、方法、事件

字段是直接在类或结构体中声明的任何类型的变量。 类可以拥有实例字段或静态字段,或同时拥有两者。实例字段用来描述对象的状态,静态字段用来描述类的状态。也就是说,静态字段属于类本身,在类的所有对象中共享,从对象A所作的更改将立刻呈现在对象B和C上;而实例字段属于每个对象,修改A的实例字段,并不影响B和C。

2024-08-27 13:06:13 2908

原创 C# 类(一)——类库、命名空间、类、对象

类:“类”是一种构造,通过使用该构造,您可以将其他类型的变量、方法和事件组合在一起,从而创建自己的自定义类型。类就像一个蓝图, 指定该类型可以进行哪些操作。对象:对象是基于类的具体实体,有时称为类的实例。从本质上说,对象是按照此蓝图分配和配置的内存块。

2024-08-25 15:23:10 3409

原创 visual studio连接sql server数据库

sql server是关系数据库管理系统,专门用来查询、操作和管理数据库。visual studio和sql server连接后,可以读取数据库中的数据,还能对数据进行增删改查。比如,我们在visual studio中用C#语言开发一个学生信息管理软件,具体功能有读取学生信息、更改学生信息、删除学生信息、添加学生信息等,这些学生的信息就存储在sql server中,软件可以根据用户的操作读取和更改数据库中的信息。

2024-08-22 15:30:52 8744 4

原创 WinForms添加Button控件

WinForms(Windows Forms)是一个用来开发Windows桌面应用的UI框架。说白了,就是说我们可以像做PPT一样对软件界面进行布局,通过拖动的方式向软件界面中放入按钮、文本框等;然后为按钮、文本框添加逻辑,这个就需要通过程序来实现了,比如,当鼠标点击按钮后,执行相应的操作(代码块)。

2024-08-19 12:16:19 1484

原创 路径跟踪与轨迹跟踪

路径跟踪,只要求行驶路径与规划的期望路径在一定的误差范围内即可,当然,误差不能太大。比如,平时导航时,当我们偏离规划路径太远时,软件会为我们重新规划一条新路径。轨迹跟踪,除了要求行驶轨迹与规划的期望轨迹在一定的误差范围内之外,还要求车辆在规定的时间内到达预期轨迹点。

2024-08-16 18:33:30 1291

原创 坐标变换与横向误差微分方程

在之前的文章[车辆动力学模型](https://blog.youkuaiyun.com/sc_1313/article/details/141059587?spm=1001.2014.3001.5502)中,我们建立了车辆侧向速度和横摆角速度关于前轮转角的表达式,我们也可以将表达式用状态空间表达式的形式写出来。

2024-08-16 16:32:12 1018

原创 车辆动力学模型

自行车模型,又叫二自由度模型,是指将复杂的车辆简化成只有y方向的侧向运动和绕z轴的横摆运动两个自由度的模型。我们在使用自行车模型建立运动学模型时,忽略掉了轮胎的侧偏现象。而在建立动力学模型时,就要考虑轮胎侧偏了。

2024-08-09 18:20:47 872

原创 车辆的轮胎

侧偏角是车轮的实际行驶方向和车轮平面之间的夹角,图中车轮平面在xoz平面内。外倾角是车轮平面和xoz平面的夹角,所谓外倾就是向外倾斜,所以按照图中的画法,该车轮一定是右轮,因为车轮只存在外倾,没有内倾。

2024-08-09 10:40:45 1772

原创 车辆坐标系

自然坐标系(Frenet坐标系)是沿质点的运动轨迹建立的坐标系,在质点运动轨迹上任取一点作为坐标原点O,质点在任意时刻的位置,都可用它到坐标原点O的轨迹的长度来表示。

2024-08-07 10:49:41 1081

原创 车辆运动学模型

车辆运动学模型是基于车辆的几何关系,对车辆建立的模型。在建立运动学模型时,采用自行车模型,又叫二自由度模型。需要注意的是,运动学模型只适用于低速情况,这是因为在建立运动学模型时,将轮胎假设为刚体,即不考虑侧偏特性。低速转向时车轮受到的侧向力很小,轮胎的变形不大,这种假设可以;但是在高速时车轮受到的侧向力很大,轮胎的变形很大,这种假设的误差就太大了。

2024-08-05 17:44:19 615

空空如也

空空如也

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

TA关注的人

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