- 博客(155)
- 资源 (4)
- 收藏
- 关注
原创 [Halcon]通过外部指针创建图像
需要在 HALCON 中直接引用第三方(相机 SDK、GPU、共享内存等)图像缓冲区。只有当你明确希望 HALCON 帮你释放时,才提供可重入、线程安全的清理回调。何时必须提供清理回调(ClearProc),何时可以置空。,HALCON 不释放内存——由调用者保证生命周期。是 HALCON 提供的最轻量级“图像视图”机制。不会复制像素数据,只在内部建立“视图”。,实现 GPU→HALCON 无拷贝。是防止内存泄漏/段错误的核心。,并避免内存泄漏或段错误。当数据所有权不在你手中时,的函数语义与参数约束。
2025-09-10 19:51:08
126
原创 [HALCON] 直线角度计算问题
求两条直线的夹角,使用angle_ll算子和自行使用直线的方向向量得到的角度不一样。├─ 是 ─→ `fit_line_contour_xld` + atan2(cross,dot)(3.2)├─ 是 ─→ `smallest_rectangle2` 拿 Phi → 自算 atan2(3.1)└─ 否 ─→ 强制 angle_ll ─→ 人为构造端点(3.3):矩形角度对“分叉/毛刺”敏感。:比矩形角度多 2 行代码。└─ 否 ─→ 需要正负号?:细长、无分叉、噪声小。Region 细长?
2025-09-10 19:33:41
393
原创 常见的光源频闪控制方式
光源以极短脉冲(微秒级)与相机曝光严格同步,实现“瞬时冻结”高速运动物体。频闪模式下,LED可短时超负荷工作,峰值亮度提升5-10倍,有效凸显微小缺陷(如金属划痕、PCB断路)。频闪占空比1%~10%(如1ms亮/99ms灭),相比连续光,平均功耗降低50%~90%,光源寿命延长2~3倍。支持多光源分时触发,避免光污染干扰,典型同步精度 ±0.5μs。
2025-08-18 20:13:32
1518
原创 工业相机选型时一定要优先选择黑白相机?
在工业相机选型时,,但在许多工业视觉应用中,黑白相机确实具有显著优势,尤其在对外观检测精度、响应速度、成本控制要求较高的场景下。
2025-08-18 20:00:59
940
原创 海康线扫相机通过采集卡的取图设置
1、通过采集卡连接线扫相机时,若扫描高度小于65000,软触发和硬触发设置都很简单,甚至不需要采集卡;2、通过采集卡连接线扫相机时,若扫描高度大于65000,硬触发,不想使用编码器,需要设置触发出图数;5、采集卡最大支持传输10G数据,需自行计算一个采集卡连接几个相机;4、硬触发不使用编码器也可以扫描大于65000行的图;设置 H 大于65000即可。设置 H 大于65000即可。设置 小于65000即可。设置 小于65000即可。
2025-07-16 14:34:39
1546
原创 [海康Demo] GrabStrategies
本示例代码演示了如何使用海康相机SDK(MvCameraControl.h)进行设备枚举、连接、配置、图像采集和释放资源的完整流程。代码支持多种相机类型(如GigE、USB、CameraLink等),并展示了不同的图像采集策略(如逐帧采集、获取最新图像、获取即将到达的图像等)。通过本示例,用户可以快速了解如何与海康相机进行交互,并实现基本的图像采集功能。
2025-07-16 09:51:53
1097
原创 海康采集卡连接线扫相机参数设置注意事项
每个网卡地址需要设置不同的网段,比如第一个网卡地址设置为:192.168.2.1,那么第二个网卡地址设置为:192.168.3.1。需要设置不同的网段,比如第一个网卡地址设置为:192.168.2.1,那么第二个网卡地址设置为:192.168.3.1。,其中横向分辨率 PH=Lo/Hc(单位:毫米/像素)此时需选择行频≥15240.93Hz的相机,不可以选软触发,只能设置硬触发。IP地址设置为对应网卡IP网段。线扫相机的每线像素数(Hc)目标物的运动速度(Vo)相机IP配置设置为静态。目标物的宽幅(Lo)
2025-06-22 10:00:00
1803
原创 海康图像转HALCON图像
档针对海康工业相机图像数据转Halcon图像格式的多线程实现方案进行技术解析。该方案通过动态分段策略和线程池技术,显著提升大尺寸图像的格式转换效率,适用于工业视觉检测场景中的实时处理需求。本方案通过智能分段策略和多线程并行处理,有效解决了工业视觉系统中高分辨率图像转换的性能瓶颈问题。实际测试表明,在8核CPU环境下可获得4-7倍的性能提升,特别适用于需要实时处理超大尺寸图像的自动化检测场景。后续可通过引入硬件加速技术进一步优化处理延迟。
2025-06-21 10:18:27
796
原创 在封装DLL时,避免第三方命名空间的依赖方法[PIMPL模式技术指南]
PIMPL(Pointer to IMPLementation)模式是C++中实现信息隐藏和二进制兼容性的重要设计范式,通过创建实现细节的私有封装层,有效隔离接口与实现。本文档详细阐述其核心原理、现代实现方式和典型应用场景。
2025-04-11 21:29:56
604
原创 【实际项目分享】多相机取图存图问题
极致并发性能:通过固定索引隔离线程写入路径,避免锁竞争灵活扩展能力:支持动态增减相机数量(需配合配置服务)低资源消耗:内存占用减少40%(相比全局互斥锁方案)容错性保障:每个相机的存储空间独立,单点故障不影响整体系统。
2025-04-11 20:57:43
615
原创 Halcon 2025年4月试用文件
https://download.csdn.net/download/weixin_42215453/90556306
2025-04-01 09:23:32
761
原创 【Halcon】灰度不均解决方案
通过白场(White Image)和黑场(Black Image)图像,手动计算校正系数。:光照不均通常为低频信号,通过高通滤波保留高频细节。:直接处理目标,避免全局受光照影响。:光照缓慢变化,目标物体尺寸较小。
2025-03-17 20:43:58
564
原创 [C++] 参数方向标记 接口描述宏
在C++中,参数方向标记是一种通过宏定义显式标注函数参数用途的编程实践。通过合理选择参数标记方案,可在代码可读性和维护性之间取得平衡,尤其在大型项目中效果显著。简单函数中过度使用可能使代码冗余,需结合注释或文档工具补充说明。通过规范宏标记,避免对输入参数误修改或未初始化输出参数的使用。宏定义不增加运行时开销,仅作为静态标记,适合性能敏感场景。宏标记无语法约束,若错误标注(如将输入参数标为。统一宏命名(如Windows API中的。可能被其他库占用),需团队统一规则。一、参数方向标记的实现原理。
2025-03-13 09:54:48
460
原创 关于C++中Debug/Release版本差异
文件(Windows)或嵌入调试符号(Linux),包含变量名、函数名和行号信息,便于断点调试。建议开发阶段使用Debug版本定位问题,发布时切换至Release模式并验证跨平台行为。Debug模式下运行会因断言失败崩溃,Release模式下跳过断言直接输出。),保留完整函数调用栈和变量初始化(如未初始化变量填充。),可能内联函数、删除未使用变量,但可能导致调试困难。一、C++中Debug与Release版本的区别。移除调试信息,文件体积更小,且不生成。
2025-03-10 19:42:56
996
原创 海康线扫相机平场矫正教程
1、白纸准备确保视野中有一张平整且无折痕的白纸,使其完全铺满相机的整个视野。2、行高设置将行高参数设定为 2048。3、灰度值控制相机端图像的灰度值应维持在 120 - 160 这个区间内。同时,最亮像素点与最暗像素点的灰度值差值不得超过 4 倍。在调整灰度值时,尽量开启增益功能。4、 图像模糊处理为减少白纸对平场矫正的影响,需将相机端获取的图像进行模糊化处理。具体操作是对镜头进行虚焦,使整体图像变得模糊。
2025-03-10 19:32:19
2140
原创 API和SDK
API:是一组预先定义的函数、协议和规范,用作不同软件系统之间的接口,允许应用程序相互交互和通信。SDK:是一个更全面的工具包,包含开发软件所需的各种工具、库、文档和相关文件。
2025-03-06 20:41:56
334
原创 C++指针避坑总结
指针的使用需要非常小心,常见的错误包括空指针解引用、内存泄漏、重复释放、野指针、非法内存访问、悬空指针和指针类型不匹配。始终检查指针是否为nullptr。动态分配的内存要及时释放。避免重复释放内存。释放内存后将指针置为nullptr。确保指针访问的内存是合法分配的。避免强制转换不兼容的指针类型。通过这些简单的规则,可以有效避免指针相关的致命错误。
2025-03-06 20:33:34
1046
原创 C++自定义函数默认参数使用指南
默认参数只能在函数声明或定义中指定一次,不能同时在声明和定义中设置。默认参数必须从右向左连续设置,未指定默认值的参数不能出现在右侧。参数按从左到右顺序赋值,无法跳过中间参数。默认参数可能引发与重载函数的歧义调用。C++自定义函数默认参数使用指南。
2025-02-21 09:00:00
567
原创 gen_gauss_filter用于检测带方向的线条
在Halcon中使用高斯滤波器检测多方向线条时,角度参数的选取需要综合考虑滤波器方向响应带宽、频域对称性和检测需求。
2025-02-20 20:43:09
405
原创 一种图像小面积缺陷放大的方法分享
将图像的每个像素点(i,j)的值复制到新图像的四个位置:(i,j)、(i,j+1)、(i+1,j)、(i+1,j+1)。这样原图的每个像素变成2x2的块,从而实现长宽各放大两倍,小面积缺陷放大两倍。
2025-02-19 09:00:00
567
原创 封装DLL避免第三方依赖的五大核心方法
目录一、方法代码示例1. 接口抽象与PIMPL模式2. 类型转换适配层3. 动态库加载隔离4. 二进制接口控制5. 资源封装规范二、Halcon+OpenCV工业检测DLL完整实现(C++17)1.项目结构2.核心实现代码2.1 接口定义(跨平台标准)2.2 Halcon2.3 OPenCV三、调用示例代码四、部署注意事项
2025-02-18 09:00:00
578
原创 【C++】线程封装与守护监控线程实现
本文将介绍如何通过二次封装来管理线程,以及如何利用守护线程机制监控多个线程的状态,确保程序的稳定性和高可用性。在复杂的应用场景中,直接使用 std::thread 来创建线程虽然简单,但其灵活性有限。实际应用往往需要对线程进行更精细的控制,例如设置线程优先级、CPU 亲和性,以及对线程状态进行管理等。为解决这些问题,我们对 std::thread进行了二次封装,通过引入 WorkerThread 类和 DaemonThread 类,实现了线程的高效管理和稳定运行。
2025-02-18 08:45:00
803
原创 PLC通信交互系统技术分享
这是一个C++程序,用于与西门子PLC进行通信,处理SN码、拍照信号、检测结果等流程。代码中使用了状态机,通过不同的状态来管理交互步骤。
2025-02-17 13:56:30
1319
原创 【项目问题】连通域排序和自由选取
连通域按面积排序允许自定义面积区间筛选连通域自定义选取排序后的区域范围// 调用示例:筛选面积50-200的区域0, 8);// 默认选取前9个// 调用示例:选取排序后的第3-7名(索引2-6)0, INT_MAX, // 不限面积区间2, 6);// 选取第3到第7个区域。
2025-02-16 21:34:05
355
原创 【Halcon】optimize_fft_speed的使用
optimize_fft_speed` 是 Halcon 中用于优化 FFT(快速傅里叶变换)速度的函数。它通过调整 FFT 的实现参数来加速后续的 FFT 计算。
2025-02-11 18:52:21
385
原创 C++ 通过XML读取参数
方法2(一次性读取一个节点中的所有参数,然后调用一次函数)是最推荐的方案,因为它在性能和可维护性之间取得了较好的平衡。如果文件后期确实会非常大(如超过100MB),可以考虑进一步优化,例如分批处理节点,或者采用流式解析(如XMLReader)来减少内存占用。
2025-02-10 21:25:26
1183
原创 HALCON 数据结构
例如,在处理一系列图像时,可以将这些图像存储在一个Iconic数组中,然后对整个数组进行统一的处理,如批量读取、批量显示等。例如,在进行轮廓跟踪时,可以先生成一个初始轮廓,然后通过跟踪算法更新轮廓的位置和形状,实现对物体轮廓的实时跟踪。例如,在进行图像特征提取时,可以先定义一个域,将特征提取的范围限制在该域内,从而加快特征提取的速度。通过句柄,可以方便地对这些对象进行操作和管理。例如,在视频监控中,可以提取行人或车辆的轮廓,然后通过轮廓跟踪算法实时跟踪目标的位置和运动轨迹,为视频分析和监控提供重要的信息。
2025-02-08 22:15:59
362
原创 C++如何解决头文件循环引用问题?
优先使用前向声明:当只需要指针或引用时,前向声明是最简单的解决方案。合理拆分头文件:将相关的声明放在同一个头文件中,避免在头文件中包含不必要的其他头文件。使用接口抽象:通过抽象接口解耦具体实现,遵循依赖倒置原则。实现逻辑放在cpp文件:头文件只包含声明,具体实现放在cpp文件中。使用PIMPL模式:对于复杂的类,考虑使用PIMPL模式,可以完全隐藏实现细节,提供更好的ABI兼容性。通过这些方法,可以有效地解决C++中的头文件循环引用问题,并提高代码的可维护性和编译效率。
2025-02-08 22:09:23
780
原创 Deepseek本地部署教程
将大型模型部署于本地电脑,能够带来一系列显著优势,但这一选择并非人人皆宜。:若您的电脑装备了高性能独立显卡,如NVIDIA系列,且显存至少达到2GB(适用于1.5B参数模型)或更高配置(例如,14B模型需11GB显存),这将为本地运行大型模型提供坚实基础。:在处理包含敏感信息的数据时,本地部署能有效规避云端传输可能带来的数据泄露风险,确保数据安全无虞。:对于需要与本地工作流程紧密结合的任务,如自动化脚本执行、深度数据分析等,本地部署能提供更流畅、高效的集成体验。
2025-02-08 14:14:00
2069
Python客户端与C++服务端的TCP通信代码框架模板
2025-02-17
关于图像识别的代码框架
2025-02-12
Halcon图像处理领域的灰度值插值方法研究及应用
2025-01-22
计算机视觉领域HALCON内存管理和缓存机制详解及其应用
2025-01-22
基于Arm平台的HALCON应用开发详解及其实现方法
2025-01-22
HALCON视觉开发与应用环境安装配置及许可指南
2025-01-22
CreateDefectLine.py
2021-08-23
EasyX图形库
2018-10-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅