自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

专注于 Qt/C++ 应用开发和机器视觉领域的开源项目分享。期待与您共同进步!

如果你对我的项目源码感兴趣,或希望深入探讨 Qt/C++ 和机器视觉领域的技术。欢迎沟通交流

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

原创 上位机状态机怎么写才不会变成一堆ifelse

本文介绍了状态机在上位机项目中的实用简化方法。作者指出,状态机不必一开始就复杂化,关键在于理清状态转换逻辑以避免混乱的if else嵌套。建议先做好基础工作:明确定义状态枚举和事件枚举,统一团队术语;编写状态转换的约束条件;建立统一的状态修改入口并记录日志。这些简单措施能有效规范状态流转,避免状态分散修改导致的维护难题,比盲目引入复杂框架更实用。核心思想是优先建立清晰的状态边界和转换规则,而非追求设计模式的完美性。

2026-06-29 08:50:43 252

原创 学机器视觉,别先纠结 OpenCV、HALCON 还是深度学习

机器视觉学习的关键在于明确应用场景而非工具顺序。OpenCV适合打基础,理解图像处理原理;HALCON侧重工业项目快速开发;深度学习解决复杂识别问题。三者并非替代关系,需根据项目需求组合使用。真正的项目落地涉及相机选型、光源设计、算法稳定性和系统集成等多方面因素。建议新手先了解完整项目流程,再结合目标(基础学习/工业开发/复杂检测)选择工具路径,避免陷入工具比较而忽视实际需求。机器视觉的核心是解决问题能力,而非掌握工具数量。

2026-06-29 08:38:41 391

原创 开源分享做一个Qt设备状态看板适合调试和演示

这篇文章介绍了一个基于Qt的上位机设备状态看板小项目,适合练手。该项目聚焦设备状态监控的需求痛点,通过结构体管理设备信息(名称、状态、更新时间),实现状态变更统一处理、日志记录和UI刷新等功能。作者强调工程化思维:数据驱动界面、集中处理状态变更、预留扩展接口。这个小工具虽简单,但涵盖了真实项目的核心要素(状态管理、日志、多设备),为后续对接真实设备打下基础,建议先用按钮模拟状态变化来验证逻辑稳定性。文章末尾提供了源码获取方式。

2026-06-27 14:16:33 210

原创 volatile 这个坑,很多 STM32 新手都踩过

摘要: 在单片机开发中,volatile关键字常被忽视却至关重要。文章通过串口中断、按键中断等场景,解释了未使用volatile时编译器可能优化导致的问题:主循环无法感知中断修改的变量。volatile强制每次访问变量都从内存读取,适用于中断修改/主循环读取、硬件寄存器等场景。但需注意,它不保证原子操作,多线程共享变量仍需中断保护或RTOS机制。文末总结了volatile的使用场景,并提醒避免滥用,否则可能掩盖真正问题。

2026-06-25 08:56:57 212

原创 ADC 滤波,真的不是“平均一下”就完事了

初学者常犯的错误是过度依赖简单平均值滤波,导致数据响应迟钝。文章分析了五种滤波方法:平均值滤波适合慢变信号但响应慢;滑动平均适合连续采样场景;中值滤波能有效消除偶发毛刺干扰;一阶低通滤波通过调整alpha参数平衡响应速度和平滑度;限幅滤波可阻挡物理上不可能的突变值。作者建议根据具体应用场景组合使用这些方法,例如先限幅再低通滤波,并强调滤波算法需要权衡响应速度与稳定性,而非盲目增加采样次数。

2026-06-23 08:42:17 225

原创 ADC 数值一直跳?我劝你先别改代码,坑多半不在程序里

STM32的ADC采样数值跳动问题往往源于硬件而非软件。主要排查方向包括:1. 电源稳定性(VREF波动直接影响ADC精度);2. 采样时间不足(高阻抗信号源需延长采样周期);3. 硬件干扰(PWM/电机等噪声耦合)。建议采用"GND-3.3V-分压点"三级验证法快速定位问题源,软件层面可通过多次平均(如16次采样)和一阶滤波改善显示效果,但需注意滤波无法根本解决硬件缺陷。典型解决方案包括:输入脚加0.1μF滤波电容、降低输入阻抗、远离高频信号线等。记住:ADC是测量系统整体噪声环境,而非单纯传感器信

2026-06-16 10:17:53 324

原创 线程里创建 QTimer 为什么偶发性不触发

在Qt多线程开发中,QTimer不触发是一个常见但难以排查的问题。核心原因在于QTimer依赖事件循环,而开发者常犯三个错误:1) 在构造函数提前创建定时器导致线程亲和性错乱;2) 重写QThread::run()使用死循环却期望事件机制正常工作;3) 忽略定时器创建/启动的线程上下文。建议采用QObject+moveToThread模式,在线程启动后的槽函数中初始化定时器,确保创建、启动和执行在同一线程事件循环中。典型应用场景如设备轮询、心跳检测等周期任务时,这种规范的线程生命周期管理能有效避免偶现故障。

2026-06-12 08:59:01 352

原创 工业相机接口怎么选?GigE这几个坑先看懂

这篇文章探讨了工业视觉系统中图像卡顿问题的根源,指出问题往往不在算法或光源,而在于容易被忽视的相机接口选择。作者重点分析了GigE(千兆以太网)接口的特点:布线简单、支持远距离传输(100米)和PoE供电,适合大多数工业场景;但也指出其依赖CPU性能、需要专业网络配置等潜在问题。文章建议根据项目需求(成本、距离、实时性等)选择合适的接口,强调正确的接口选择对系统稳定性的关键影响。最后提醒工程师不要简单归咎算法,而应全面评估系统设计。

2026-06-12 08:34:37 404

原创 很多人学不会STM32,第一步就卡在了时钟树

STM32时钟配置是初学者容易忽视却至关重要的问题。文章指出,时钟错误会导致串口乱码、定时器不准等隐性故障,而这些问题常被误认为是外设代码错误。

2026-06-11 08:00:00 221

原创 为什么同一个引脚不能同时做按键和串口

本文揭示了STM32开发中一个常见但容易忽视的问题:同一IO引脚被多个功能复用导致的冲突现象。通过典型案例(按键与串口复用PA10引脚)分析,指出引脚能复用不等于能同时使用,详细解释了电平冲突的物理原理,并给出分时复用的风险提示。文章强调硬件设计阶段合理规划IO的重要性,提出优先保障关键外设、保留调试资源等实用建议,最后总结引脚冲突的三大本质原因(模式冲突、外设冲突、电平冲突),提醒开发者遇到通信异常时首先检查硬件设计而非盲目调试代码。全文以实际问题为导向,对嵌入式开发者具有实操指导价值。

2026-06-10 08:43:21 219 1

原创 我把 OpenCV 模板匹配做成了一套 Qt 软件

模板匹配本身并不是一个新算法。真正让我感兴趣的是:怎样把一个算法能力,整理成别人可以直接使用的软件流程。从加载图片,到制作模板;从 ROI 绘制,到特征点预览;从参数调整,到模板保存;从执行匹配,到结果展示。每一步都不复杂。但当这些步骤完整串起来以后,一个简单的 OpenCV Demo,才真正变成了一套可以使用的小工具。如果你在使用过程中遇到问题,可以留言交流。如果你希望在现有工具基础上增加功能,或者需要开发其他 Qt、OpenCV、图像处理和机器视觉软件,也可以联系博主进行评估。

2026-06-10 08:35:19 883

原创 模板匹配到底怎么用?Fast NCC 和 Shape Based 参数通俗讲

本文通俗讲解了模板匹配的两种核心方法(Fast NCC和Shape Based)及其适用场景,并详细解析了关键参数(最低分数、匹配数量、角度/尺度范围、ROI等)的调整技巧。通过分步调参策略和实际案例,帮助读者掌握模板匹配的正确使用方法,避免常见误区,实现更精准稳定的匹配效果。

2026-06-10 08:34:09 238

原创 一个 GPIO 口到底能带多大负载?很多人从一开始就理解错了

本文解释了STM32 GPIO无法驱动继电器、蜂鸣器等大功率负载的原因。虽然GPIO能输出3.3V高电平,但其带载能力有限,无法提供负载所需的大电流。文章指出,万用表测量空载电压正常不代表能带动负载,建议查看芯片手册确认GPIO电流能力,强调长期工作在极限值会出问题。正确做法是用GPIO控制三极管/MOS管来驱动负载,并注意线圈类负载要加续流二极管防止电压尖峰。最后提醒开发者:GPIO是信号控制端而非电源,驱动负载时要考虑电流需求和保护措施。

2026-06-09 09:18:35 314

原创 读多写少?别急着上 QReadWriteLock,项目里可能更慢

本文总结了Qt多线程项目中QReadWriteLock的常见误用场景及优化建议。作者指出,很多开发者看到"读多写少"就盲目使用读写锁,但在实际项目中,长时间持有读锁会导致写线程阻塞,造成数据更新延迟等问题。关键问题在于读锁中包含了UI更新、信号发射等耗时操作,而非简单地获取数据。

2026-06-09 09:00:57 221

原创 相机帧率标得很高,为什么一上产线就跑不满?

工业视觉项目中,相机标称帧率与实际运行帧率存在差异是常见问题。本文分析了造成帧率不达标的五大关键因素:1)标称帧率需满足特定测试条件;2)曝光时间设置不合理导致物理限制;3)接口带宽不足造成传输瓶颈;4)采集卡、缓存或主机性能不足;5)触发方式不当影响采集节奏。文章建议采用系统工程思维,从曝光时间、分辨率、接口带宽等采集链路各环节进行排查,强调稳定的节拍比峰值帧率更重要。文末邀请读者分享实际项目中的性能问题案例。

2026-06-09 08:47:33 486

原创 QMutex 用错地方,卡顿比崩溃还烦

在多线程Qt/C++项目中,滥用QMutex可能导致界面卡顿等隐形问题。文章指出,开发者常犯的错误包括:过度扩大临界区范围(将耗时操作也包含在锁内)、主线程等待被后台长时间占用的锁、在锁内进行IO操作或信号发射等。这些问题不会立即引发崩溃,但会逐渐导致界面响应迟缓。作者建议应严格限制锁的粒度,仅保护共享数据的核心操作,将耗时处理和UI更新放在锁外,避免主线程阻塞。

2026-06-08 08:52:51 403

原创 机器视觉拍不稳,很多时候不是相机问题,是光没打对

打光比算法更重要 许多新手在视觉项目中常陷入误区:图像不清就换高像素相机,边缘检测不稳就调阈值,误判多就怀疑算法。实际上,大多数问题的根源在于打光——光源设计直接决定了图像质量和算法稳定性。

2026-06-08 08:46:40 385

原创 按键扫描还放 while 里?难怪你的 STM32 项目越写越卡!

STM32项目中按键扫描常导致系统变慢卡顿,问题根源在于常见的阻塞式写法(如延时消抖和等待松手)会占用CPU资源。正确做法是采用非阻塞方式:用定时器周期扫描按键,仅上报事件标志,由主循环处理业务逻辑。核心原则是避免在按键函数中执行耗时操作,分离按键检测与功能处理。这种优化能显著提升多任务系统的响应速度和稳定性,尤其适用于需要复杂按键交互(如长按、组合键)的菜单项目。

2026-06-06 10:10:01 259

原创 分辨率不等于精度,新手最容易在这里踩坑

机器视觉选型时不能孤立考虑相机像素,必须将分辨率、精度和视野三者结合分析。文章指出,同样的500万像素相机,在不同视野范围下单个像素对应的实际尺寸差异显著。正确的选型流程应先明确检测区域大小和最小缺陷尺寸,计算像素当量并预留余量,再综合镜头、光源等硬件条件验证。工程实践中,实际精度还受镜头畸变、光源稳定性等多因素影响,理论像素当量不等于实际检测精度。建议选型时重点关注"在多大范围内看清多小的物体",而非单纯追求高像素。

2026-06-06 08:42:32 343

原创 闲着没事,把之前写的局域网聊天 Demo 整理开源了:Qt + TCP + SQLite

LanQQ Chat是一个基于C++/Qt开发的完整即时通信学习项目,实现了局域网内真实可运行的聊天系统。项目包含客户端和服务端,具备账号登录、消息收发、历史记录同步等核心功能,并解决了TCP粘包、消息ACK确认、失败重试等典型工程问题。

2026-06-06 07:45:00 417

原创 按键消抖还在 delay?难怪你按一下,STM32 像抽风一样连触发

按键消抖看起来是小问题。但它考验的是嵌入式编程思维。GPIO 读到的是电平。用户操作才是事件。不要一看到低电平就执行。不要动不动就 delay 堵住程序。真正适合项目的按键写法,应该是:定时扫描 + 消抖计数 + 状态判断 + 事件输出下次你的 STM32 按键又出现“按一次触发多次”“短按长按分不清”的问题,别急着怀疑硬件。按下 -> delay -> 执行很多按键翻车现场,问题就出在这里。也欢迎留言说说,你项目里遇到过哪些离谱的按键问题。

2026-06-05 09:24:32 480

原创 QThreadPool 用着用着,程序怎么越来越慢了?

这篇文章探讨了Qt项目中常见但容易被忽视的线程池使用问题。作者指出,开发者在Demo阶段常将各种任务(数据解析、文件处理等)简单丢入QThreadPool,初期运行流畅,但在真实场景中当数据量激增时,程序会出现界面卡顿、性能下降等问题。文章分析了三个关键误区:1)误认为任务进入线程池就会立即执行,实际上存在排队现象;2)盲目增加线程数反而可能导致CPU资源争抢;3)忽视主线程被大量回调信号"打爆"的风险。作者建议采取三项措施:在任务入口添加流量控制机制、实现UI更新合并刷新、区分任务优先级并制定过载策略。最

2026-06-05 09:05:03 325

原创 GPIO 明明输出高电平,模块却没反应?很多 STM32 初学者都栽在这 4 个坑里

STM32 GPIO常见问题解析:为什么代码写对了硬件不响应?

2026-06-03 08:57:34 322

原创 Qt 跨线程别乱 connect,槽函数可能根本不在你想的线程

Qt多线程开发中,单纯依赖Qt::QueuedConnection可能导致线程安全问题。实际项目常因对象初始化顺序、线程亲和性判断错误引发槽函数执行线程错位、UI卡顿甚至崩溃。建议明确对象线程归属:先创建对象→moveToThread→建立连接,确保跨线程通信时接收方拥有有效事件循环。需注意QueuedConnection仅解决调用投递,不保证数据安全,关键要预先规划线程边界、数据传递方式和资源访问规则,避免在构造函数中初始化带事件循环的对象。线程安全的核心在于清晰的架构设计而非单一连接方式。

2026-06-03 08:45:03 203

原创 灯亮了、串口打印了,就真的学会单片机了吗?

摘要:学习单片机时,很多初学者只关注外设现象是否出现(如LED点亮、串口输出),却忽略原理和稳定性问题。本文指出实验思维与项目思维的关键差异:前者满足于现象,后者要求可重复、可解释、可移植和可调试的能力。作者建议通过改参数、故意制造错误、记录原理来深入理解外设,强调"现象出现≠问题解决",真正的能力体现在异常排查和条件变化的应对中。文章提醒开发者警惕"碰巧能工作"的陷阱,提倡从底层机制掌握外设,而非简单复制示例代码。

2026-06-02 08:43:13 498

原创 Qt MQTT 调试助手:用 Qt 做一个适合设备联网调试的小工具

Qt MQTT调试助手是一款面向工业物联网调试的实用工具,集成了连接Broker、主题订阅、消息发布和接收等核心功能。该工具特别适合设备联网调试场景,支持多客户端窗口联调,可模拟设备和平台的双向通信。界面集中了连接参数设置、主题操作和消息显示区域,便于快速排查MQTT通信问题。作为Qt学习项目,它涵盖了网络通信、信号槽、界面设计等关键技术点,比传统Demo更贴近实际工业应用。

2026-06-02 08:30:00 788

原创 单片机初学者最容易误解的 Init:不是调用一下函数就完事了

STM32开发中,外设初始化失败是常见问题,看似调用了MX_GPIO_Init()等函数却无效果。核心原因在于: 时钟未开启,外设无法工作; GPIO模式错误(如串口TX未配置为复用推挽); 外设参数不匹配(如波特率、数据位配置错误); 中断/DMA未正确初始化。 关键误区:盲目依赖库函数,忽视底层配置细节。

2026-06-01 09:04:36 265

原创 工业相机参数看着都简单,真到现场最容易翻车的是这 5 个

工业相机选型常陷入参数误区:高分辨率不等于更好,需匹配视野、像元尺寸等系统参数;高帧率未必更稳定,关键在曝光同步与图像一致性;像元大小影响图像质量,大像元在弱光下更可靠;接口选择需考虑抗干扰与长期维护。工业相机的核心价值在于稳定性而非画质——能长期复现相同图像、精准触发、参数固定,这才是产线真正需求。项目成败往往取决于系统可控性,而非单一性能指标。

2026-06-01 08:48:49 283

原创 学 Qt TCP 通信,客户端一定要会写:我整理了一个 TCP 调试助手客户端版源码

这篇文章介绍了一个实用的Qt TCP调试助手客户端工具,适合用于网络通信调试和上位机开发。该工具支持连接服务器、收发数据、查看通信日志、保存常用指令等功能,界面简洁实用。作者分享了该工具的源码,方便学习者了解QTcpSocket的使用方法,包括连接管理、状态监听、数据收发等核心功能。文章建议开发者可以基于此工具扩展HEX收发、定时发送、协议解析等功能,并强调掌握TCP客户端/服务器开发对设备通信和局域网工具开发的重要性。

2026-06-01 07:45:00 700

原创 收藏了很多机器视觉知识,为什么一做项目就卡住?

有些刚学机器视觉的人,最容易出现一种感觉:相机参数知道一点,光源类型看过一点,Halcon、OpenCV也跟着教程跑过,甚至缺陷检测、尺寸测量、定位抓取都刷过案例。可一到真实项目,突然不知道从哪下手。不是不会点按钮,也不是完全看不懂代码,而是现场一问:“这个产品怎么打光?这个相机够不够?误检怎么压?节拍怎么保证?和PLC怎么对?”人就开始发懵。这就是很多人学机器视觉最大的误区:以为自己缺的是更多知识点,实际上真正缺的是。

2026-05-31 09:30:00 263

原创 为什么你抄的Demo没问题,自己写的程序却各种异常?

许多STM32初学者在修改官方Demo时,常遇到程序异常(死机、中断失效等),误以为是硬件或库的问题。实际上,问题多源于忽略Demo中隐藏的初始化细节,如时钟配置、中断使能、回调函数依赖等。核心原因包括:1. 初始化顺序破坏(如外设依赖未满足);2. 全局变量未复制(如UART句柄缺失);3. 回调函数覆盖(原逻辑被替换);4. 中断配置不全(NVIC或优先级未设置)。解决方法是模块化代码、建立初始化清单、逐步验证修改,并理清功能依赖链。

2026-05-31 08:45:00 254

原创 学 Qt 绕不开 TCP:我整理了一个 TCP 调试助手服务器版源码

针对Qt开发者常遇到的TCP通信难题,本文分享一个可直接运行的服务器版TCP调试助手工具。该工具支持端口监听、多客户端连接管理、实时数据显示、通信日志记录及常用指令保存功能,界面清晰展示在线客户端IP和端口。特点包括:区分显示多个设备连接状态、支持自定义/预置指令发送、提供完整Qt网络通信实现范例(QTcpServer/ QTcpSocket)。源码结构清晰,便于学习TCP基础功能或二次扩展(如协议解析、HEX收发等),适合上位机开发及设备调试场景使用。

2026-05-31 08:00:00 470

原创 Qt6 + QCustomPlot 实时曲线 Demo ,适合串口与上位机项目

本文介绍了一个基于Qt6和QCustomPlot开发的实时曲线显示Demo项目。该项目采用CMake+VS2022构建,具备数据可视化核心功能,包括:曲线平移缩放、多轴向模式、数据点编辑、3种曲线绘制方式(折线/平滑/柔和平滑)、PNG导出等。内置模拟数据接收功能,可模拟串口/TCP/PLC等设备的数据流,便于二次开发接入真实设备。该Demo适合用于Qt学习、上位机软件开发、工业控制等项目,可作为数据可视化模块的基础框架。

2026-05-30 09:04:36 245

原创 相机都调麻了,缺陷还是漏检,问题到底卡在哪?

前面三步做完,通常已经能拿到一张可用图像。但项目现场要的不是“偶尔能跑”。而是“稳定跑”。这时候,就要进入细节优化。比如换光源颜色。不同颜色的光,对不同特征的强调效果不一样。红光更容易凸显绿色缺陷蓝光更适合凸显红色印刷问题很多时候,只换一个颜色,图像反差就能明显改善。再比如开启频闪模式。高速产线里,光源和相机帧率同步后,图像会更稳定,也更容易冻结运动状态。还有分区亮度调节。面对大面积目标,比如车门这类对象时,中心和边缘的照明需求可能并不完全一样。

2026-05-30 09:01:28 381

原创 学单片机最大的误区:只会搜教程,却不会查官方文档

许多单片机开发者常陷入"代码能跑却不理解原理"的困境,主要体现为:过度依赖网络例程而忽视官方文档、不了解引脚复用配置、不查时钟树设计、忽略寄存器说明和电气参数等问题。文章指出,真正高效的开发应该先查数据手册(引脚功能表、时钟树、寄存器说明)再搜索资料,并建议建立文档索引、调试先看寄存器状态、整理关键参数表。通过串口发送代码示例说明,掌握查阅参考手册理解硬件标志位的能力,比复制代码更重要。

2026-05-30 09:00:35 280

原创 为什么你复制别人的 STM32 工程,到了自己电脑就报错一堆?

新手常犯的错误是仅复制代码文件而忽略工程配置,导致头文件缺失、芯片型号不匹配、启动文件错误等问题。核心原因涉及芯片型号选择、启动文件匹配、头文件路径、宏定义和库版本五个关键点。作者通过四层架构(业务代码、芯片支持文件、库文件、工程配置)解析工程结构,并给出实用建议:先用CubeMX新建匹配工程再逐步移植功能,优先解决首个报错,保留完整工程说明文档。

2026-05-29 08:55:41 444

原创 老板想省工业相机的钱,最后谁在现场背锅?

普通相机虽然能拍清图像,但在工业视觉检测中容易因自动调节功能导致结果不稳定。工业相机的核心优势在于参数可控,确保每次拍摄条件一致,适应产线的严格需求。现场应用中,触发精度、快门方式、接口稳定性等因素至关重要。项目成功不仅取决于单次成像质量,更依赖长期稳定的系统配合。工业相机的高价实为规避后续调试和误判风险的投资。

2026-05-29 08:52:25 356

原创 异步里捕获 this?我被坑到想哭

在Qt开发中,Lambda捕获this指针时容易忽略对象生命周期问题,特别是异步任务场景下可能导致悬挂指针访问崩溃。作者通过项目案例指出,Demo环境下运行正常不代表生产环境安全,建议使用QPointer进行防护或确保Lambda调用时对象存活。关键教训:GUI对象+异步任务组合必须显式处理生命周期,避免依赖偶然性,QPointer和QueuedConnection是有效防护手段。

2026-05-29 08:44:45 583

原创 STM32 初学者最容易翻车的地方:所有代码都塞进 main.c

初学STM32时,常将所有代码堆砌在main.c中,导致项目臃肿难维护。核心问题在于缺乏模块化分层:驱动层(硬件操作)、应用层(功能逻辑)、协议层(数据解析)和状态机(系统状态)未分离。正确做法是将功能拆分为独立模块(如app_key.c、protocol.c),main.c仅负责初始化和调度。模块化能提升调试效率,避免全局变量滥用和逻辑混乱。建议从学习阶段养成分层习惯,确保代码可扩展、易维护。

2026-05-28 08:46:49 216

原创 Cursor 智能代码编辑器深度评测报告

本文深入探讨了智能辅助工具在复杂多语言项目开发中的实际应用效果。通过真实场景测试,文章验证了工具在多语言支持、全库上下文理解、复杂重构等方面的表现,展示了其自动生成代码、识别依赖关系和优化逻辑的能力。同时分析了网络依赖、隐私安全、与传统IDE插件的差异,以及长期使用的稳定性问题。文章为开发者提供了智能工具选型、配置优化和安全使用的实用建议,帮助团队在保证代码安全的前提下提升开发效率。

2026-05-28 08:43:45 417

libmoudbus动态库

包含完整的.h .lib .dll文件,可以直接加载使用

2026-03-19

奥比中光【计算机视觉】基于C++的Orbbec SDK深度相机开发指南:数据流控制与参数配置技术实现

内容概要:本文档为Orbbec SDK C++接口使用指南,详细介绍了如何通过C++接口快速接入Orbbec 3D相机设备并获取各类数据流(如Depth、IR、Color、IMU等)。文档涵盖SDK核心组件的初始化、设备管理、数据流获取、参数配置(如曝光、增益、镜像、D2C对齐、点云生成)、录像与回放、日志管理及异常处理等内容。同时阐述了硬件与软件D2D、D2C对齐原理及其配置方式,并提供多设备同步、网络IP设置、激光与LDP保护等高级功能说明。; 适合人群:具备C++编程基础,从事3D视觉、机器人、AI感知等领域开发工作1-3年的研发人员或技术支持工程师;熟悉基本图像处理概念和技术的开发者;; 使用场景及目标:① 实现Orbbec 3D相机的Depth、IR、Color及IMU数据的实时采集与处理;② 配置相机各项参数以适应不同环境需求(如光照、距离、精度);③ 生成Depth点云和RGBD点云用于三维重建、SLAM或可视化;④ 利用D2C对齐技术实现深度与彩色图像的空间匹配;⑤ 进行设备日志追踪、故障排查与多设备协同工作;; 阅读建议:建议结合Orbbec SDK提供的示例代码(如DepthViewer、SyncAlignViewer、PointCloud、Record/Playback等)进行实践操作,重点关注设备初始化流程、StreamProfile选择、参数合法性校验及异常捕获机制。配置修改前应确认设备支持情况与权限要求,确保程序稳定性。

2025-09-30

机器视觉基于Halcon的深度学习图像处理系统安装与配置:工业检测领域开发环境搭建指南

内容概要:本文介绍了Halcon机器视觉软件的基本情况及其安装步骤。Halcon由德国MVtec公司开发,是一款功能强大的商用机器视觉软件,包含集成开发环境HDevelop、超过2000个视觉算子库以及对C/C++、Python、C#等多种编程语言的支持。文章回顾了Halcon自1999年发布1.0版本以来的重要发展节点,包括集成开发环境的加入、嵌入式支持、深度学习技术的引入等。重点详述了Halcon20.11版本的离线安装流程,分为三个部分依次安装核心库、深度学习核心组件和深度学习数据资源包,并提供了详细的图文安装指引。此外,还说明了软件激活方式及HDevelop与HDevelop XL两个版本的区别,前者适用于常规图像处理,后者专为超大分辨率图像优化。; 适合人群:从事机器视觉相关工作的工程师、研究人员及有一定编程基础的技术爱好者;适用于希望学习或使用Halcon进行图像处理和深度学习应用开发的用户。; 使用场景及目标:①用于工业自动化、质量检测、图像识别等机器视觉项目开发;②帮助用户掌握Halcon软件的完整安装与配置流程,特别是离线环境下深度学习模块的部署方法;③区分HDevelop与HDevelop XL的应用范围,合理选择开发环境。; 阅读建议:建议读者按照文档提供的安装顺序逐步操作,注意文件替换和路径设置细节,同时可结合实际项目需求探索Halcon在图像处理与深度学习方面的具体应用。

2025-09-22

越疆C++二次开发接口文档V4版本.pdf【工业自动化】基于TCP/IP的C++机器人控制接口

内容概要:本文档为越疆Dobot工业机器人控制柜V4版本的C++二次开发接口技术手册,详细介绍了基于TCP/IP协议的机器人控制指令集及其使用方法。文档涵盖控制、设置、计算与获取、IO、Modbus、总线寄存器、运动、轨迹恢复、日志导出及力控等通用指令,提供各指令的原型、参数说明、返回值及使用示例,并阐述了实时反馈信息的数据结构、通用错误码以及不同机器人状态下允许执行的TCP指令,旨在帮助开发者实现对机器人的远程控制与状态监控。; 适合人群:具备C++编程基础,从事工业机器人开发、自动化控制、系统集成的技术人员,包括销售工程师、安装调测工程师及技术支持工程师等。; 使用场景及目标:①通过调用RequestControl、EnableRobot、MovJ、MovL等指令实现机器人远程上电、使能与运动控制;②利用实时反馈端口(30004/30005/30006)获取机器人状态数据,实现状态监控与数据采集;③结合Modbus、IO及力控指令,实现机器人与外部设备的通信与协同作业,如力控拖拽、焊接轨迹恢复等高级应用; 其他说明:文档中的示例为伪代码,需结合实际开发环境进行适配;指令不区分大小写,支持立即指令与队列指令的混合使用;开发者需注意各状态下指令的执行权限,并通过错误码及时处理异常情况。

2025-09-16

通用的 Qt 安装器,支持安装 Qt 的多个版本(包括较新的版本

统一安装器:这个安装器是 Qt 官方提供的统一安装工具,用于安装多个 Qt 版本以及 Qt 相关工具。通过这个安装器,你可以选择安装不同版本的 Qt 和相关工具(例如 Qt Creator IDE、工具链、构建工具等)。 在线安装:像 qt-online-installer-windows-x64-4.8.1 一样,这也是一个在线安装器,它会在安装过程中下载所需的文件。

2025-06-17

Qt 在线安装程序 ,联网安装

在线安装器:它是一个在线安装程序,这意味着它不会包含所有的 Qt 安装文件,而是需要在安装过程中下载所需的组件。 下载和更新:通过在线安装器安装时,它会自动从 Qt 的服务器上下载必要的文件。这使得它的初始安装包相对较小,但是需要稳定的网络连接来完成安装。

2025-06-17

基于形状匹配的剃须刀刀片检测与缺陷分析的完整Halcon例程代码和示例图像文件

该资源包包含基于形状匹配的剃须刀刀片检测与缺陷分析的完整Halcon例程代码和示例图像文件,代码实现了刀片的形状匹配检测与缺陷分析的具体流程,图像文件可用于代码调试和功能测试。用户可通过加载资源直接运行代码,完成刀片检测与缺陷分析功能,验证算法的可靠性与实用性,同时深入学习形状匹配与缺陷分析的实现方法。资源完整,包含代码与图像,可直接运行,无需额外配置,适合学习和开发相关应用场景。

2024-12-27

基于形状匹配与OCR的多图像处理Halcon例程代码及示例图像文件

该资源包包含基于形状匹配与OCR的多图像处理Halcon例程代码及示例图像文件,资源内容包括实现形状匹配与OCR识别的完整程序,示例图像用于代码的调试和功能测试。用户可直接加载图像和程序运行代码,实现多图像处理、目标检测与字符识别的功能,验证算法的准确性和适用性。资源配套完整,含代码、图像及下载链接,可直接运行,无需额外配置,非常适合学习Halcon的形状匹配与OCR技术,以及相关应用的开发。

2024-12-27

高噪声环境下形状匹配的完整Halcon例程代码、示例图像以及相关配套文件

该资源包包含用于高噪声环境下形状匹配的完整Halcon例程代码、示例图像以及相关配套文件,代码实现了在噪声干扰条件下进行形状匹配的具体功能,图像文件用于代码调试和测试,配套文件则提供了运行环境要求和使用说明。用户可以通过加载资源直接运行代码,验证在高噪声环境中形状匹配算法的效果,快速掌握相关算法的实现原理与应用方法。资源完整、内容齐全,适合直接使用,无需额外配置,非常适合学习和开发相关技术。

2024-12-27

基于HSV颜色的保险丝分类的完整Halcon例程代码和示例图像文件

该资源包包含用于基于HSV颜色的保险丝分类的完整Halcon例程代码和示例图像文件,代码实现了保险丝分类的具体功能,图像文件可用于代码的调试和测试。用户可以直接加载提供的资源运行代码,通过HSV颜色空间分析实现保险丝的分类功能,验证算法效果,快速掌握HSV颜色分类的实现原理与应用方法。资源完整,包含代码与图像,可直接运行,无需额外配置,非常适合学习与开发相关应用。

2024-12-27

Halcon安全环检测例程资源包

该资源包包含用于安全环检测的完整Halcon例程代码和配套的示例图像文件,其中代码文件实现了安全环检测的具体功能,图像文件用于代码的调试和测试。通过资源中的代码和图像,用户可以直接加载示例数据运行代码,完成安全环检测的功能验证,快速了解相关算法的实现原理和应用方法,资源完整且可直接运行,无需额外配置,适合学习与开发使用。

2024-12-27

Halcon液位检测例程代码与图像资源

该资源包包含用于液位检测的完整Halcon例程代码和配套的示例图像文件,其中代码文件实现了液位检测的具体功能,图像文件则用于代码调试和功能测试。通过资源中的代码和图像,用户可以直接加载示例数据,运行代码实现液位检测效果,验证算法功能,从而快速理解液位检测的实现方法并进行相关应用开发。资源完整,可直接使用,无需额外配置。

2024-12-27

工业视觉海康威视MVS客户端使用指南及注意事项

内容概要:本文档是海康机器人工业相机客户端MVS3.2.1的用户手册,详细介绍了MVS客户端的功能、特性和操作流程。涵盖了环境配置、菜单介绍、相机连接、参数设置、图像处理、日志信息、常见问题及解决方案等方面的内容。手册强调了正确的环境配置和相机连接方法,提供了丰富的操作步骤和注意事项,帮助用户高效地使用MVS客户端进行工业相机的调试和管理工作。 适用人群:工业视觉系统的工程师、技术人员以及维护人员,特别是需要调试和管理海康威视工业相机的用户。 使用场景及目标:①正确配置和连接多种类型的工业相机,包括GigE、USB3.0、Camera Link等接口的相机;②进行实时预览、参数配置、固件升级和故障排查;③确保工业相机在各种环境下的稳定运行,提高工作效率和系统可靠性。

2024-11-25

基于Qt的多功能串口通信工具分享:实时数据收发与波形绘制

基于 Qt 框架开发的多功能串口通信工具,旨在为用户提供稳定、流畅的串口数据收发体验。该工具不仅支持基本的串口通信功能,还集成了定时发送、多线程数据处理、粘包问题解决、实时波形绘制等多种高级功能。通过使用 QSerialPort 进行串口操作,并结合 QSettings 进行配置文件管理,用户可以灵活地配置通信参数,实现对外部设备的数据交互和监控。此外,软件通过使用多线程技术确保串口通信的平稳性,避免因大量数据传输导致界面卡顿。其粘包拆解机制和波形绘制功能,帮助用户更直观地观察通信数据的变化,为硬件调试和通信测试提供了强有力的支持。 ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/chenai886/article/details/142586527

2024-09-28

该项目是一个基于 Qt 框架开发的桌面应用程序,主要用于与 MQTT 服务器进行连接和通信

项目功能 MQTT 连接与断开:用户可以通过设置服务器的 IP、端口、用户名、密码等参数进行连接或断开与 MQTT 服务器的连接。 消息订阅与取消订阅:用户可以订阅一个或多个 MQTT 主题,并通过接口取消订阅。 消息发布:用户可以向特定的 MQTT 主题发布消息,并查看发布状态。 消息接收:当订阅的主题收到消息时,会实时显示消息内容。 日志输出:将运行状态、发布或接收的消息内容以不同颜色显示在界面上,区分信息、警告、错误等类型。 启动新客户端实例:提供按钮以启动新的客户端实例,方便进行多客户端测试。 关键技术点包括: QMqttClient 的使用,处理 MQTT 连接、订阅、发布和消息接收。 信号与槽机制,用于响应连接、消息接收、状态变化和错误处理等异步事件。 Qt 样式表 (QSS) 的使用,提升了用户界面的视觉效果

2024-09-24

该串口助手工具基于Qt/C++开发,专为简化串口通信调试与开发而设计,适合新手快速上手 工具具有直观的用户界面和丰富的功能,旨在

一、项目概述 该串口助手工具基于Qt/C++开发,专为简化串口通信调试与开发而设计,适合新手快速上手。工具具有直观的用户界面和丰富的功能,旨在帮助用户与串口设备建立可靠通信,便于调试、数据传输和分析。 二、主要功能 波特率:支持常见波特率(如9600、115200等),并支持自定义。 数据位:提供从5到8位的选择。 校验位:支持无校验、奇校验、偶校验等。 停止位:提供1位或2位选择。 接收数据:支持实时显示从串口设备接收的数据,用户可以选择显示格式(如十六进制、ASCII等)。 发送数据:用户可以通过界面输入并发送数据,支持单次发送和定时发送,便于测试连续传输。 串口自动检测与连接串口助手具备自动检测功能,可以自动识别当前系统中的串口设备。用户通过界面选择设备并一键连接,简化了配置流程。 串口参数配置用户可以根据实际需求设置以下参数: 数据收发 三、软件安装与使用 1. 使用 该串口助手提供了编译好的发布包,用户可以自行下载可以直接启动应用。在应用界面中,选择要连接的串口设备,配置相关串口参数,点击“连接”即可开始数据通信。数据收发、等功能可以根据需求自由选择和配置

2024-09-20

基于Qt/C++实现了一款功能丰富的TCP服务器与客户端调试助手 该工具不仅支持双向发送、群发、定时发送等基本功能,还具备接收显

系统设计与架构 该调试助手采用Qt框架作为开发基础,结合C++的高效性能,实现了一个用户友好且功能强大的图形界面应用。系统整体架构分为以下几个模块: 网络通信模块:负责TCP连接的建立、维护及数据传输。 用户界面模块:提供直观的操作界面,方便用户进行各项调试操作。 数据处理模块:处理发送与接收的数据,包括文本与图像数据。 功能扩展模块:实现群发、定时发送及数据可视化等高级功能。 功能实现 双向发送 双向发送功能允许用户在服务器与客户端之间自由地发送和接收数据。用户可以在任意一端输入数据并发送,另一端实时接收并显示。这一功能对于测试通信协议的稳定性和数据传输的正确性至关重要。 实现要点: 利用Qt的QTcpSocket类建立TCP连接。 通过信号与槽机制,实现数据的实时发送与接收。 提供简洁的输入框与发送按钮,方便用户操作。 群发 群发功能使用户能够同时向多个客户端发送相同的数据,极大地提升了同时调试多设备的效率。 实现要点: 管理多个TCP连接,每个连接对应一个客户端。 在发送数据时,遍历所有连接,逐一发送数据。 提供群发选项,确保数据同步发送。 定时发送 定时发送功能允许用

2024-09-20

串口调试助手、多信息枚举、定时、

串口自动检测与连接串口助手具备自动检测功能,可以自动识别当前系统中的串口设备。用户通过界面选择设备并一键连接,简化了配置流程。 串口参数配置用户可以根据实际需求设置以下参数: 波特率:支持常见波特率(如9600、115200等),并支持自定义。 数据位:提供从5到8位的选择。 校验位:支持无校验、奇校验、偶校验等。 停止位:提供1位或2位选择。 数据收发 接收数据:支持实时显示从串口设备接收的数据,用户可以选择显示格式(如十六进制、ASCII等)。 发送数据:用户可以通过界面输入并发送数据,支持单次发送和定时发送,便于测试连续传输。

2024-09-06

Qt/C++ TCP服务器调试助手

端口管理 端口设置:用户可以在界面上设置服务器监听的端口号。在当前截图中,端口号被设置为123。 打开/关闭端口:用户可以通过点击“打开”或“关闭”按钮来启动或关闭指定端口。程序将监听该端口的TCP连接请求,并提供状态反馈。 清空信息:通过“清空信息”和“清空接收”按钮,用户可以快速清除当前界面上显示的日志信息和接收到的消息,方便调试过程中清理数据。 2. 数据交互 消息显示:程序可以显示详细的TCP通信记录,包括消息的发送时间、消息内容以及发送状态(发送成功或接收成功)。界面上区分了发送和接收消息,发送消息显示为橙色,接收消息显示为绿色。 通信消息格式:用户可选择以文本或HEX格式查看接收到的数据,并且可以通过界面勾选切换两种显示模式(例如:HEX显示和文本显示)。 收发统计:程序提供了“收到帧数”、“发送帧数”、“收到字节”、“发送字节”等统计信息,帮助用户实时监控通信的数据量。 3. 群发功能 定时群发:程序允许用户设置定时群发功能,用户可以向多个客户端定时发送消息。通过配置每个群发框,用户可以分别设置群发内容及时间间隔(以毫秒为单位)。截图中默认时间间隔为1000毫秒,即每秒发

2024-09-06

Qt/opencv 二维码视频解析读取程序

Qt opencv 二维码识别 视频获帧

2024-04-19

一键彻底关闭系统防火墙

一键彻底关闭系统防火墙

2023-12-12

一键设置Windows禁用系统更新

禁用Windows系统更新 禁用Windows系统更新

2023-12-12

网口调试工具网口调试工具

网口调试工具 网口调试工具 网口调试工具 网口调试工具 网口调试工具

2023-12-04

串口调试工具串口调试工具

串口调试工具 串口调试工具 串口调试工具 串口调试工具 串口调试工具 串口调试工具

2023-12-04

PLC调试工具PLC调试工具

PLC调试工具 PLC调试工具 PLC调试工具 PLC调试工具 PLC调试工具 PLC调试工具

2023-12-04

Halcon源码+OCR字符识别+图像数据集

1.Halcon源码。 2.OCR字符识别。 3.图像数据集。 4.训练源码。 5.识别源码

2023-11-30

点打字体、OCR字符、Halcon训练源码、识别源码

1.字符数据集。 2.点打字符。 3.Halcon源码+注释。 4.字符训练代码。 5.字符识别源码。 6.增加曝光

2023-11-30

HalconOCR字符识别源码+点阵字体图像资源

1.halcon学习-OCR字符识别源码。 2.工业现场图像数据集。 3.稳定图像数据集。 4.详细源码注释 5.halcon20版本 6.欢迎关注与下载,更多资源与问题请私信 7.为了增加曝光量1 8.为了增加曝光量2 9.为了增加曝光量2

2023-11-29

空空如也

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

TA关注的人

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