自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(339)
  • 资源 (5)
  • 收藏
  • 关注

原创 【HALCON】HALCON算子详解:test_subset_region 的功能与应用

的主要功能是判断一个区域(Region1)是否完全包含在另一个区域(Region2)中。换句话说,它用于测试 Region1 是否是 Region2 的子集。是 HALCON 中用于判断区域包含关系的高效工具,特别适用于需要验证区域嵌套关系的图像处理任务。通过合理使用该算子,开发者可以简化区域关系的判断逻辑,提高图像处理的准确性和效率。

2025-05-21 01:00:00 269

原创 【HALCON】 算子详解:create_local_deformable_model_xld 的全方位解读

create_local_deformable_model_xld 是 HALCON 中用于创建局部可变形模型的关键算子,适用于处理图像中目标存在非刚性变化(如弯曲或拉伸)的情况。该算子通过 XLD 轮廓生成模型,广泛应用于工业检测、医学图像分析等领域。其核心参数包括 NumLevels(图像金字塔层级)、AngleStart(旋转角度范围)、ScaleR*(行列缩放范围)、MinContrast(边缘灵敏度控制)等。通过合理配置 MinContrast 和 GenParamName,可以优化模型的匹配精度

2025-05-18 10:32:13 416

原创 【yolo】如何在 YOLOv8 中添加负样本以减少误检

在YOLOv8目标检测中,误检(False Positive)是一个常见问题,即模型将非目标区域错误识别为目标。通过引入负样本(Negative Samples),即不包含任何目标框的图像,可以有效减少误检。在YOLOv8中添加负样本的方法是为这些图像提供空的标注文件(.txt),确保每张图像都有对应的标注文件,即使内容为空。可以使用Python脚本自动生成这些空标注文件。使用负样本时需注意数量比例、标注一致性、验证集同步和图像质量。适当加入负样本能显著提升模型鲁棒性,降低误判风险。

2025-05-15 15:30:03 426

原创 【HALCON】破案了:halcon脚本为啥测试时和运行时结果老是不一样?

在处理图像算法时,图像保存格式的选择可能对结果产生重大影响。本文通过一个字符检测项目的案例,揭示了JPEG格式的有损压缩如何导致模板匹配得分的变化。实验表明,使用JPEG保存的图像在重新加载后,匹配得分从4.9变为5.3,而使用无损的BMP格式则保持了原始得分。文章建议在进行模板训练或匹配分析时,应使用原始图像对象或无损保存格式,避免使用JPEG格式,以确保算法结果的准确性。这一案例强调了在图像处理中,即使是微小的细节也可能对最终结果产生重大影响。

2025-05-15 01:15:00 1476

原创 【HALCON】 HALCON 教程:正确使用 `get_dict_tuple` 获取字典内容

本文详细介绍了 HALCON 中 get_dict_tuple 算子的正确使用方法,并分析了常见的错误及其解决方案。get_dict_tuple 用于从字典中读取键对应的元组值,但使用不当可能导致错误,如 HALCON error #1302。常见错误包括键不存在、字典未初始化或值类型不匹配。为避免这些问题,建议在使用前检查键的存在性、字典的初始化状态以及值的类型。文章还提供了安全使用的代码示例,并推荐了相关文档和 API 索引。此外,作者提到在模板匹配中,直接使用 HImage 与保存后加载的图像在打分上

2025-05-14 20:35:17 785

原创 【C#基础】集合.Any() 与 判断集合的长度有啥区别?

集合.Any() 和 集合.Count > 0 在判断集合是否为空时功能相似,但存在显著差异。Any() 通常更高效,因为它找到第一个元素即返回,适用于所有 IEnumerable 类型,包括无限序列和流式数据,且语义更清晰。而 Count > 0 需要遍历整个集合计数,仅适用于可计数的集合(如 ICollection)。在数据库查询中,Any() 生成的 SQL 更优化。最佳实践建议优先使用 Any() 判断集合是否为空,仅在需要元素数量时使用 Count。

2025-05-14 15:16:42 329

原创 【Qt/C++】深入理解 Lambda 表达式与 `mutable` 关键字的使用

本文深入探讨了在 Qt/C++ 开发中 Lambda 表达式与 mutable 关键字的使用。通过示例代码,详细解释了 Lambda 表达式的基本结构、变量捕获方式以及 mutable 关键字的作用。文章指出,mutable 允许修改按值捕获的变量副本,而不会影响外部变量。此外,文章还分析了不同捕获方式的特点,并提供了最佳实践建议,如按值捕获适用于只读场景,引用捕获适用于需要修改外部变量的情况。最后,总结了不同捕获方式的区别,帮助开发者更好地理解和使用 Lambda 表达式,特别是在 Qt 信号槽连接中的应

2025-05-10 11:34:39 553 2

原创 【QT】Qt 信号与槽进阶技巧详解:默认参数、重载槽、Lambda、线程通信

本文深入探讨了Qt信号与槽机制中的进阶技巧,涵盖了槽函数默认参数的使用注意事项、重载槽函数的正确写法、Lambda表达式作为槽函数的优势,以及跨线程信号槽通信的实现方法。文章指出,槽函数默认参数在实际使用中容易引发误解,建议避免使用;重载槽函数时需通过static_cast明确指定函数签名;Lambda表达式作为槽函数简洁灵活,适合一次性处理逻辑;跨线程通信时,需使用moveToThread()和QueuedConnection确保线程安全。此外,文章还总结了信号槽连接方式及多线程对象释放的注意事项,为开发

2025-05-09 02:00:00 639 1

原创 【QT】Qt 自定义信号与槽详解:原理、写法、案例与进阶技巧

Qt 中的信号与槽(Signal & Slot)机制是实现对象间通信的核心方式,通过 QObject::connect() 将信号与槽连接,实现解耦的通信。自定义信号与槽需要继承 QObject 并使用 Q_OBJECT 宏,信号用 signals: 声明,槽用 slots: 声明。信号通过 emit 触发,不能直接调用。Qt5/6 推荐使用类型安全的连接语法,避免老式字符串写法。信号还可以与 Lambda 表达式结合,增强灵活性。跨线程通信时,Qt 会自动切换为 QueuedConnection,

2025-05-09 01:15:00 506 1

原创 【QT】深入理解 Qt 中的对象树:机制、用途与最佳实践

Qt 中的对象树机制是其内存管理和 UI 结构组织的核心特性。通过父子关系,Qt 自动维护一个树状结构,并在销毁父对象时递归销毁所有子对象,从而简化内存管理并避免内存泄漏。对象树在界面控件管理、信号与槽的自动断开、样式和事件传递等方面有广泛应用。开发中需注意避免设置错误的父对象、跨线程设置父子关系等常见误区。通过合理使用对象树,开发者可以更高效地管理复杂 UI 结构和内存资源。

2025-05-08 20:53:31 503 1

原创 【C++】C++函数指针详解与实用技巧

C++中的函数指针是一种指向函数入口地址的指针,常用于回调机制、策略模式等场景。其基本语法为 返回类型 (*指针变量名)(参数类型列表),通过函数指针可以动态调用函数。常见用途包括替代条件语句、作为函数参数(回调机制)、返回函数指针以及使用数组存储多个函数指针进行策略切换。现代C++中推荐使用 std::function 和 Lambda 表达式替代裸函数指针,因其更安全且功能更强大。在Qt中,connect 函数中使用 & 取地址操作符是为了代码清晰性和兼容性,尤其是在处理重载函数时。尽管在某些情

2025-05-08 20:44:25 675

原创 【Qt】Qt 构建系统详解:qmake 入门到项目实战

qmake是 Qt 提供的跨平台构建系统工具,它能将.pro文件(项目描述)转换为对应平台的构建脚本,如 Makefile 或 Visual Studio 工程文件。qmake是 Qt 提供的构建系统,简洁、易上手,是管理 Qt 项目的传统利器。熟练使用.pro文件可以大大提升项目维护效率。对于大型项目,建议使用subdirs管理模块。Qt 6 官方已推荐使用 CMake,新项目可考虑迁移。通常出现在项目的顶层,用于组织多个子项目。它本身不包含代码,只是构建配置的集合。

2025-05-07 20:10:42 1226

原创 【Halcon】极坐标转换算子 polar_trans_image_ext 使用详解

用于将图像中某个环形扇区区域转换为极坐标图像。Width可能并不是一个固定值,推荐你使用经验公式并结合视觉效果调试,来得到最适合你任务的设置。这张是在圆环上的原图拉伸12的效果拉伸50的效果拉伸100的效果当我写到200时,函数直接报错了!看来也无法无限往大了写。

2025-05-07 01:30:00 867 3

原创 【wpf】 WPF中实现动态加载图片浏览器(边滚动边加载)

初始只加载少量图片,快速打开界面。用户滚动时,按需分页加载后续图片。界面不卡顿,体验丝滑流畅。这种设计特别适合处理大量图片浏览、视频帧查看、缩略图管理器等场景。

2025-04-29 00:15:00 700

原创 【halcon】smallest_circle 最小外接圆操作解析

操作的目的是计算一个区域的最小外接圆,即包含该区域且面积最小的圆。它会输出圆的中心坐标(Row 和 Column)以及半径(Radius)。这个操作非常适合用于确定圆形物体的位置和大小,尤其是在物体内部不均匀或边缘不完整的情况下。例如,当我们需要处理一些硬币图像时,硬币可能因为拍摄角度、光照条件或分割算法的不完美而出现内部不均匀或边缘破损的情况。可以帮助我们准确地找到这些硬币的中心位置和大小,从而为进一步的分析和处理提供基础。

2025-04-28 14:50:56 449

原创 【halcon】算子 copy_obj

在 HALCON 中,copy_obj是一个操作符,用于从输入对象中复制图像或区域对象。

2025-04-28 14:39:36 415

原创 【halcon】tuple_sort_index 和 select_obj 配合使用 详解

计算需要排序的特征(如面积)。使用获取排序后的索引。使用select_obj和Indices+1重新排列对象。在 Halcon 的 Region 管理、特征筛选中,是不可或缺的重要函数。掌握,能够大幅提升你在复杂图像处理任务中,排序、筛选、优先级管理的灵活性和准确性。C# HTuple 操作是元素级别的,+1是批量的。Halcon Region 的 select 是从1开始的,必须 Indices + 1。排序后重新组合数据的能力,是做高质量图像分析程序的基础功!

2025-04-27 11:43:10 89

原创 【工控基础】工业相机设置中,增益和数字增益有什么区别?

在使用工业相机时(比如海康、大恒、Basler 等),和虽然名字相近,但它们。

2025-04-19 16:35:58 318

原创 【halcon】 紧凑度全面分析

在图像分析里,紧凑度是用来衡量一个区域形状紧凑程度的指标。紧凑度的计算公式如下:紧凑度的取值范围是 ( 0 < C <= 1 )。当区域形状越接近圆形时,紧凑度就越接近 1;而区域形状越细长、不规则或者有很多分支时,紧凑度就越趋近于 0。在判断一个区域是否为线状时,由于线状区域通常细长且不紧凑,其紧凑度值一般会比较小。在上述代码中,先使用算子计算区域的面积,再用perimeter算子计算区域的周长,最后依据公式算出紧凑度。

2025-04-16 15:37:42 873

原创 【C++】前向声明(Forward Declaration)

前向声明(Forward Declaration)是在C、C++等编程语言中,在使用一个类、结构体或其他类型之前,仅声明其名称而不给出完整定义的一种方式。

2025-04-14 20:26:38 295

原创 【Prism】弹窗复用的正确姿势:隐藏不销毁,实现二次显示

✅ 优点💬 描述✅ 性能提升避免多次创建/销毁同一窗口✅ 状态保留保留弹窗内用户输入、UI 状态✅ 复用灵活支持不同视图、多窗口共存✅ 易扩展可进一步封装动画、关闭判断等逻辑Prism 的在设计上是为“一次性对话框”而生的,但在实际业务中,弹窗的复用需求极为常见。通过延迟注册 + 窗口缓存,我们可以优雅地实现“隐藏而非关闭”的复用机制,提升用户体验同时也优化性能。

2025-04-09 11:31:43 84 1

原创 【Prism】Prism 中 EventTrigger 无法触发命令的问题及解决方案

在使用 Prism 时,如果绑定的命令无法触发,可能是ViewModel没有正确绑定到View。如果ViewModel未实现通常不需要手动添加。如果ViewModel实现了,建议手动启用,以确保ViewModel能够正确绑定。这个小细节在开发中容易被忽略,但却可能导致功能无法正常运行。因此,在使用 Prism 进行 MVVM 开发时,建议始终检查ViewModel绑定情况,以避免类似的问题。希望这个经验能帮到大家!

2025-04-02 15:43:28 61

原创 【C#】ForEach vs foreach

这两种写法,但实际上在某些情况下。我们来逐条对比讲明白👇。

2025-03-29 10:28:58 310

原创 【C#】`Task.Factory.StartNew` 和 `Task.Run` 区别

✅日常写 async 或后台处理?用Task.Run,安全简洁。🔧有特殊需求(如长时间任务、不走线程池、UI 调度器)?用。// ⚠️ 容易犯错:});// 返回 Task<Task>,容易误用!});

2025-03-28 19:55:06 579

原创 【C#】Task 线程停止

就像一个“遥控开关”,可以让后台线程知道“该停下来了”。bool适合非常简单的控制,一两个线程内部用可以;但如果你要和 Task、多个线程、现代异步配合,才是真正线程安全、优雅且可组合的现代解决方案。

2025-03-28 19:38:42 708

原创 【C#】`Interlocked` vs `lock`

如果你只是修改一个变量,优先用,性能更高;如果你要操作多个变量或执行复杂逻辑,就用lock,更通用更灵活。你这个相机采集系统如果涉及采图计数、图像编号、控制状态这些,可以大量使用;如果是控制图像队列、处理流程,就可能需要lock。是一个线程安全的整数和引用操作工具类,不仅能递增递减,还能实现原子加法、值替换、CAS 等,高性能、无锁,非常适合并发场景!如果你在做一些并发计数器、控制标志位、实现轻量锁,是利器!

2025-03-28 16:57:17 446

原创 【C#】关键字 volatile

volatile让你在线程之间正确地观察到变量的变化,适合用于控制标志位(如循环退出),但不适合用于计数器、队列等需要原子操作的场景。

2025-03-28 16:50:01 494

原创 【yolo】初学 YOLO,你需要知道的三种配置

定义类别数量nc: 3 # 必须和 data.yaml 中一致# 深度和宽度缩放因子(small 模型)# Anchor 框设置(每个输出层3组)anchors:# 主干网络结构backbone:# 检测头部head:配置类型文件/代码路径内容数据配置data.yaml定义训练、验证、测试数据路径和类别信息模型配置yolo.yaml定义模型结构、通道数、anchor、Detect 层等训练方式yolo 命令用代码方式灵活启动训练,更易集成和调试。

2025-03-22 10:25:50 558

原创 【yolo】使用 Netron 可视化深度学习模型:从 YOLOv1 到 YOLOv8 的探索

Netron 是一个用于可视化神经网络模型结构的工具,支持多种深度学习框架的模型文件格式。模型可视化:支持 ONNX、TensorFlow、PyTorch、Keras 等格式,能够以图形化的方式展示模型的网络结构。参数查看:可以查看每一层的输入输出维度、权重参数等详细信息。跨框架支持:方便在不同框架之间进行模型转换和迁移。轻量化与易用性:提供网页版和桌面版,无需复杂配置即可使用。官网地址当我将一个onnx模型拖到网页时,你将得到一幅图。我主要看这个输出,你知道为啥是:198400吗?

2025-03-21 21:44:20 1069 1

原创 【yolo】YOLO训练参数输入之模型输入尺寸

是YOLO训练和推理过程中非常重要的参数之一。YOLO要求输入图像的尺寸是固定的,通常为正方形(如416×416、640×640等)。这个尺寸直接影响模型的性能和速度。

2025-03-21 21:01:26 3742

原创 【yolo】yolo训练报错,以及解决方案

刚刚,写了《【yolo】yolo推理报错,以及解决方案》,马上训练就遇到类似的报错。我对我标注的图像进行了300轮的训练,但是训练完300轮后,报错了。。。

2025-03-21 15:17:39 1289

原创 【yolo】yolo推理报错,以及解决方案

我安装好了yolo8的环境后出现的报错,安装命令如下

2025-03-21 11:26:55 624

原创 我的创作纪念日

五年前,我开始在博客上记录我的技术探索之旅。从最初的尝试到现在,这已经成为了我生活和工作的一部分。今天,借此机会总结一下这五年来的点滴收获。

2025-03-17 09:25:01 383

原创 【工控】线扫相机小结 第五篇

线扫相机通过光栅尺的脉冲触发, 我在调试线扫过程中,发现图像被拉伸,预设调节分配器。图像正常后,我提高的相机的扫描速度(Y轴动的更快了)。动的更快的发现,图像变短了(以前设置的高度为1000,现在高度明显变短了,但是出图了),而且又畸形了。此时不管怎么调节速度,都无法改变畸形。

2025-03-10 11:43:21 438 1

原创 【halcon】如何理解 halcon 中的domain 之 “区域被裁剪掉了!”

单词 domain 翻译为:n.: 域, 域名, 领域, 领地, 版图, 领土, 地盘, 王国。我最后的做法是,显示的时候关掉,显示完了就打开!

2025-03-08 14:34:34 165

原创 【WPF】绑定报错:双向绑定需要 Path 或 XPath

`CameraList` 里的每个元素就是 `string`,直接使用 `{Binding .}` 让 `TextBox` 绑定当前项

2025-03-01 15:23:44 469

原创 【C# 数据结构】队列 FIFO

队列和FIFO是什么关系?队列是一种数据结构。FIFO是队列需要遵循的基本原则:First-In, First-Out。或者说FIFO是队列的基本特性!C#中有个类叫做Queue,就是实现了队列这种数据结构的类,它遵循FIFO这个原则。

2025-02-21 10:51:57 992 1

原创 【工作流】WorkflowCore 第四篇 While节点

说实在的,WorkflowCore 自带的这个While节点并不好用,既然已经理解了While节点的逻辑,为什么不写一个符合自己需求的While节点呢?#region 输入/// true: 条件进行循环,false:根据次数循环set;} = false;set;//While循环次数set;} = 1;这样就得到了一个既可以选择设置条件,又可以选择设置循环次数的while节点了!!!

2024-12-31 09:57:21 1032 1

原创 【工作流】WorkflowCore 第三篇 不构造输入节点

在这篇文章中,我们详细的接解释了输入输出的节点的构造过程,这次我遇到了一个新的问题。

2024-12-21 14:07:53 395 1

原创 【Syncfusion系列】Diagram 杂谈 第四篇 节点拖拽

Diagram 的拖拽也可以通过这种方式实现。不过在过程中我发现一个问题:由于 Diagram 是支持 缩放的, 而且是有滚动条的。因滚动条和缩放导致视口变换,导致的拖放不准的问题! 也就是和鼠标释放的位置不一致。

2024-12-20 11:46:37 583 1

孙鑫C++教程(全20讲)PPT讲义 + code

  内容涵盖面广,从入门到精通,授课通俗易懂,分析问题独到精辟,绝对是目前国内顶级的VC++教学视频。学员通过本套光盘的学习,能够快速掌握VC++,进一步精通VC++。 1、循序渐进  从Win32SDK编程开始讲解,帮助大家理解掌握Windows编程的核心 —— 消息循环机制。 2、通俗易懂  编程语言枯燥难懂,然而通过孙鑫老师形象化的讲解,Windows和MFC编程中的难点、重点,让你轻松掌握。 3、实战性强  编程中要注意什么?如何阅读出错提示?如何调试运行程序?如何排查错误,解决问题?通过孙鑫老师的一步步操作讲解,带你迅速掌握程序开发的全过程。 4、内容全面  Windows编程知识,VC++面向对象的编程思想,MFC编程,涵盖了软件开发中的绝大部分应用,以及在以后开发中可能出现的问题,由孙鑫老师一一帮你剖析。 5、讲解深刻  在一些重难点知识以及属于操作系统内核编程方面的知识,孙鑫老师都将给你剖析其本质,讲解其后台运行的原理,让你从根本上理解、掌握并灵活运用这些知识。 6、问答形式  在讲解一些重要知识点的时候,孙鑫老师会提出一些问题,引领大家思考,而这些问题正好是你在理解这

2024-04-18

wpf .net prism 框架 项目模板

GlassTest.rar 是源码 MyHalconTemplateV2.0.zip 是制作好的模板 使用方便参考博客 :http://t.csdnimg.cn/JKKr8

2023-12-08

博客:pytorch 搭建神经网络最简版 配套资源

博客:pytorch 搭建神经网络最简版 配套资源

2022-06-24

tesseract-ocr-setup-4.00.00dev + tessdata + jTessBoxEditorFX-2.2

tesseract-ocr-setup-4.00.00dev + tessdata + jTessBoxEditorFX-2.2

2022-04-25

mingw64 8.1.0 win32 离线版 和 在线安装版

离线:mingw64 8.1.0 win32 在线:自行选择版本 在线安装版 在线安装出错,请使用离线安装版本!

2022-04-01

WPF编程宝典——C# 2010版(含源码,有书签)

WPF编程宝典——C# 2010版(含源码,有书签,字迹清晰)

2019-01-14

TimeQuest笔记

对TimeQuest的一点理解,通过将近一个星期的研究,把头看痛了好几次,我对TimeQuest这个时序工具分析以及如何让时序收敛有了一定的认识,接下我我要讲述整个时序收敛的过程。

2013-04-09

空空如也

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

TA关注的人

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