自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

诗三百的博客

学而不思则罔,思而不学则殆

  • 博客(30)
  • 收藏
  • 关注

原创 固高控制卡的几种运动模式

可以根据动态设置的比例,小孩能走到大人同样的位置,也能走到大人落后一点的位置,亦能处于AB中间点,还能设置走到A到AB中间点的中间点。精确度更高,自由度较低,时间,速度,位置三个维度都能保证。Job运动类似按钮事件,点一次按钮,执行一下事件。进一步扩展了PT运动的概念,除了位置和时间外,还直接指定了速度,允许用户对加速度、减速度以及恒速阶段进行详细规划,提供了更高的灵活性和精度。在点位运动的基础上增加了时间维度,不仅指定了目标位置,还规定了到达该位置的确切时间,速度由系统根据位置和时间自动计算。

2025-02-15 12:15:32 397

原创 WPF的DataGrid渲染性能优化

提高Grid性能的几种方法。

2025-02-14 15:31:46 126

原创 单例模式实现的几种方式

此外,从 C# 5.0 开始,volatile.Read 和 volatile.Write 方法提供了更细粒度的控制,可以对非 volatile 字段执行与 volatile 相同的内存屏障操作。然而,对于大于机器字长的数据类型(例如64位系统上的 long 或 double),即使它们是 volatile 的,也不能保证读写操作的原子性。它确保对字段的读取和写入是原子操作,并且不会被编译器或处理器重新排序,从而避免了某些类型的竞态条件(race conditions)。这保证了程序逻辑的正确性。

2025-01-07 11:13:21 742 1

原创 1.运控概述

运控是指“控制移动”之意,可以利用各种电机进行位置控制等操作,让机器听懂你的指令。是一个中间件,将你的指令传达给具体的实现设备。比如电脑输入了一个步进电机走十步的指令,接口板根据电脑输入的脉冲数量,转换成对应的步进量,让设备去实行。它的主要任务是接收指令、翻译指令,然后让设备按指令动起来。接收指令:比如你用C#编程告诉它“让这个电机转5圈”。翻译指令:它会把你的指令转成机械能懂的信号(比如脉冲信号)。发出指令:然后传给机械,让它动起来。这是用于驱动步进电机和伺服电机的控制单元。

2025-01-03 15:10:41 1206 1

原创 十一.深度学习

应用方向通用流程步骤超参数

2024-12-28 15:14:05 116

原创 十.相机标定与三维重建

机器视觉的本质,是通过图像获取三维世界的真实信息。相机标定的作用是根据二维图像与三维世界的对应关系,从而还原三维世界中物体原本的坐标,深度,位姿等信息。比如测量通过图像测量物体的具体宽高,3D重建等功能。2)外部参数:表示相机在现实世界中的三维位置。如相机在世界坐标系的X轴,Y轴,Z轴信息等。比如警察可以通过鞋码推算身高,相机标定可以通过外部信息推算物体的宽高。1)内部参数:相机自身的配置信息等。如相机的焦距,拍摄图像的宽高,传感器的尺寸等。1)可以通过Halcon的标定助手进行相机标定。

2024-12-27 15:05:05 158

原创 九.图像分类

简单来说,就是通过图像,识别出属于什么类型。比如:一个苹果图像,属于水果类。

2024-12-25 14:01:02 862

原创 八.模板匹配

(2)使用create_local_deformable_model或者create_local_deformable_model_xld算子创建模板(可以使用determine_deformable_model_params算子查看推荐参数)(2)透视形变模板创建有多种方式:create_planar_uncalib_deformable_model/create_planar_uncalib_deformable_model_xld创建无标定的模板。然后通过reduce_domain算子裁剪出来。

2024-12-24 10:58:40 787

原创 七.边缘检测

segment_contours_xld:将轮廓分割成线段,圆弧等预定义的形状,可搭配select_obj算子单独使用其中某一个轮廓形状。如果只需要分割成线段,可以使用gen_polygons_xld和split_contours_xld组合。edges_color_sub_pix:提取彩色多通道图像的亚像素边缘(可生成轮廓)fit_line_contours_xld:对不规则轮廓进行拟合,以得到规则的轮廓。union_straight_contours_xld:同方向的邻近轮廓。

2024-12-19 16:14:31 137

原创 六.特征提取

gen_cooc_matrix:创建图像共生矩阵。3.select_shape算子可高效的根据特征提取出符合条件的区域。intensity:计算单张图像上多个区域的灰度值的平均值和偏差。min_max_gray:计算最小最大灰度值,以灰度直方图为主。cooc_feature_image:连续执行以上两个算子。cooc_feature_matrix:计算共生矩阵属性值。area_center_gray:灰度区域的面积和中心。gray_features:计算指定区域的灰度值。

2024-12-19 15:28:47 177

原创 wpf杂谈

WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) - walterlv。WPF内存优化,防止内存泄漏 | 码客说。

2024-11-13 09:57:54 138

原创 五.图像的形态学处理

图像边缘变得更加平滑,不相连的区域可能会连接。与腐蚀是相反的操作。1.腐蚀:对所选区域进行收缩,用于消除边缘和杂点。常用erosion_circle,erosion_rectangle。顶帽运算和底帽运算皆可单独使用,单独使用时,能够提取出暗背景,目标尺寸比较小的图像。6.底帽运算:得到闭运算后移除的局部图像。5.顶帽运算:得到开运算后移除的局部图像。3.开运算:先腐蚀后膨胀。4.闭运算:先膨胀后腐蚀。灰度图像,是已经经过灰度化的图像。

2024-11-11 21:20:04 209

原创 四.颜色与纹理

(3)create_color_trans_lut:将原始颜色通过查表的方式赋值为另一种颜色。3.彩色图像包含多个颜色通道,不同的颜色通道,表现形式也不同,可以通过颜色通道检测图像。(7)sub_image:通道图像做减法计算,比如蓝色通道图像减去红色通道图像。(1)trans_from_rgb:将RGB图像转换为任意颜色空间。(2)trans_to_rgb:将任意颜色空间转换为RGB图像。(4)image_to_chaneel:获取图像的颜色通道数组。H(色调)S(饱和度)V(纯度)

2024-11-08 08:56:24 156

原创 三.图像分割

图像分割的标准,可以是像素的灰度,边界,几何形状,颜色,甚至是纹理。watersheds_threshold:原理同上,但多了一步操作,即在得到初步的分水岭分割结果后,将灰度小于阈值的分水岭合并提取。如同先执行分水岭算法,再执行全局阈值处理。阈值处理:像素灰度值的范围在0-255(黑-白)之内,将图像的像素值和该阈值进行对比,在设定范围内的称为前景,其余为背景。3.dyn_threshold:局部阈值,适合处理图像不怎么清洗,需要检测的区域灰度复杂,有的比阈值范围大,有的比阈值范围小,包含多种灰度的情况。

2024-11-07 09:22:10 200

原创 二.图像预处理

仿射变换:解决图像失真的问题,避免出现图像扭曲变形(矩形,梯形) hom_mat2didentity:创建一个空的仿射变换矩阵 hom_mat2dtranslate:平移矩阵 hom_mat2drotate:旋转矩阵 hom_mat2dscale:缩放矩阵 应用仿射变换矩阵 affine_trans_pixel:应用于像素点 affine_trans_point_2d:应用于二维点 affine_trans_image:应用于图像 affine_trans_region:应

2024-11-06 14:27:55 355

原创 一.图像采集

3.阈值分割,将图像按照设定的临界点分割,粗略筛选出区域,(这步还是大区域)4.将相连的区域合并,一个个按照独立出来,方便后续提取。1.把图像加载到Halcon中。

2024-11-06 14:24:49 200

原创 上位机通讯协议之大端小端

可从上述所说看出,有大端小端区分的,最小也是一个字,即16位,两个byte(可组成一个字节数组)。最低字节(低位字节)是:F0 11110000 在字节数组索引【0】位置上。最高字节(高位字节)是:C0 11000000 在字节数组索引【0】位置上。大端模式,也被称为高位模式:最高字节数据存储在内存的最低地址处,最低字节数据存储在内存的最高地址处。小端模式,也被称为低位模式:最低字节数据存储在内存的最低地址处,最高字节数据存储在内存的最高地址处。

2024-09-22 19:21:10 281

原创 随笔:==和Equals比较

object.ReferenceEquals:比较两者的堆栈引用。

2024-09-18 09:36:57 230

原创 现代化开发为什么不推荐使用存储过程

存储过程在数据库中扮演着非常重要的角色,但技术推陈出新,业务发展多态化,已经有更多的新技术方案可替代存储过程适应现代化开发。1.我们现在用的数据库,不是最终确定的数据库。在高并发环境下,这种锁定机制可能导致阻塞,即一个存储过程正在执行时,其他进程可能需要等待锁释放才能继续,这会影响系统的吞吐量。例如,如果存储过程中有复杂的事务逻辑或大量数据返回给客户端,那么可能会消耗较多的数据库资源,影响整体性能。:存储过程通常在数据库服务器上执行,如果并发请求量过大,可能会超过单个数据库服务器的能力,导致性能瓶颈。

2024-09-02 09:54:41 1439

原创 string特殊的引用类型

可先提前理解C#中的堆栈概念,这是本人在csdn上找到的一篇文章深入理解C#中的堆(Heap)与栈(Stack),一次性全都掌握!_c# 堆栈-优快云博客引用类型可通过修改副本值从而改变源数据的值,亦可修改源值改变副本值,如下图所示。但在C#中,string虽然也是引用类型,但其稍微有些特殊。通过以上示例看出,无论是源值还是副本值,修改后,引用已经悄然变化。为什么会出现以上情况呢,通过反汇编则可知晓答案。(着重看箭头指向)

2024-08-12 14:28:18 436

原创 自动实现的属性字段

使用lamda表达式方式初始化时,要注意初始化的值是非实例化,非动态的。不然会重新分配内存,改变引用。2.如果涉及到实例化,=> lamda表达式赋值方式会重新分配内存,改变属性的引用。3.如果涉及到动态值,=> lamda表达式赋值方式会重新分配内存,改变属性的引用。但需要注意的是,Message赋值的方法容易重新分配内存。1.如果不涉及到实例化或者值变动,两种方法都不会重新分配内存。C#常用的两种给属性或者字段赋初始值方法。

2024-08-09 21:34:03 147 1

原创 上位机通信组件-2

丢包情况一般是网络通讯不稳定,或者数据缓冲区读取的字节数量不对造成的。前一种情况可通过心跳检查,断线重连等方案解决。粘包情况:设备发送数据太快,导致上一个包的缓冲区还未清空,下一个包的数据就进入了缓冲区,读取缓冲区时把数据包粘连在一起了。设备会有自己的心跳检查,一般是通过心跳检查去发现是否已断线。这里不多叙述,简单的写一个自己实现的断线检查和重新连接。方法也很简单,和服务端定义一个协议,比如发送时将包的长度,名称,id等一起传送过来,这样接收时,按照协议去解析。比如断线重连,丢包粘包等情况。

2023-12-18 15:32:20 117

原创 上位机通信组件-1

上位机通信分为以太网口和串口通信。两者是电脑硬件,以太网就是俗称的网口,串口不知如何形容,大家自行百度。TCP通信,可使用Socket类。一个简单的TCP通信就已经完成了。

2023-12-18 14:54:51 146

原创 Visual Studio 高效率

1.开启内联参数提示。2.开启全局智能提示。3.实时显示诊断错误。

2023-12-16 19:16:16 159

原创 WPF布局控件

可自定义行和列来处理。

2023-12-13 14:40:32 74 1

原创 WPF小技巧

2023-12-13 14:05:10 64 1

原创 高并发架构

高并发(High Concurrency)是指系统能够同时处理很多请求或者任务的能力。在计算机领域,特别是在网络服务、数据库系统、Web应用等领域,高并发是一个重要的性能指标。当一个系统需要处理大量用户的请求时,如果系统能够有效地支持并处理这些请求,就可以说这个系统具有高并发能力。高并发系统通常需要处理大量的并发用户,而不降低系统的性能或导致请求的延迟。以双十一举例,某宝上有双凉鞋,因物美价廉大受欢迎,所以有一千万人在十分钟内竞相购买。换句话说,系统服务在十分钟内承受了一千万次访问。这便是高并发场景。

2023-11-23 11:06:50 723

原创 Wing~致力于打造一个功能强大、最接地气的.NET微服务框架。——网关策略篇

当电路中的负载过高的时候,“保险丝”就会熔断。微服务的熔断就如同保险丝一样,当服务间的调用出现频繁的超时,核心服务却一直在等待这个超时服务的响应结果,后果就是整个系统服务的卡顿、无反应,这对于用户端是不可接受的。所以熔断就是某个服务发生不断的调用响应超时的时候,就屏蔽掉这个服务,短路这个服务,不调用这个服务的具体内容直接返回一个默认值,对服务进行降级处理。在appsettings中配置以下策略,并将Test控制器中的Get方法设置等待2*60*1000,重启网关和Service1服务。// 全局策略。

2023-11-22 15:13:33 1118 1

原创 Wing~致力于打造一个功能强大、最接地气的.NET微服务框架。——网关篇

微服务的应用可能是部署在不同机房、不同地区、不同域名下的。此时客户端想要请求对应的服务,都需要知道机器的具体IP或域名;当微服务实例众多时,对客户端来说就难以维护。此时就有了网关,客户端相关的请求直接发送到网关,由网关根据请求标识解析判断出具体的微服务网址,再把请求发送到服务实例上。

2023-11-22 13:11:52 550 2

原创 Wing~致力于打造一个功能强大、最接地气的.NET微服务框架。

Wing致力于打造一个功能强大、最接地气的.NET微服务框架,支持运行平台。支持Consul服务注册与发现,服务间通讯支持http和grpc调用,内置负载均衡器。支持Saga分布式事务,支持三种恢复策略:向前恢复、向后恢复、先前再后。自带配置中心,服务配置可以在线集中统一管理。支持http/grpc/sql(支持ORM框架EFCore/FreeSql/SqlSugar)链路追踪及耗时分析统计。内置服务网关,支持全局服务策略和个性化服务策略配置。支持RabbitMQ事件总线,自带友好操作的可视化UI管理界面。

2023-11-11 15:57:10 491 1

空空如也

空空如也

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

TA关注的人

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