自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

T

123321

  • 博客(143)
  • 资源 (4)
  • 收藏
  • 关注

原创 Halcon 2025年4月试用文件

https://download.youkuaiyun.com/download/weixin_42215453/90556306

2025-04-01 09:23:32 381

原创 在C++ Qt中集成Halcon窗口并实现跨平台兼容和大图加载

容器中,利用系统原生句柄实现跨平台。对大图进行分块处理或降采样显示。

2025-03-24 23:11:50 166

原创 【Halcon】灰度不均解决方案

通过白场(White Image)和黑场(Black Image)图像,手动计算校正系数。:光照不均通常为低频信号,通过高通滤波保留高频细节。:直接处理目标,避免全局受光照影响。:光照缓慢变化,目标物体尺寸较小。

2025-03-17 20:43:58 66

原创 [C++] 参数方向标记 接口描述宏

在C++中,参数方向标记是一种通过宏定义显式标注函数参数用途的编程实践。通过合理选择参数标记方案,可在代码可读性和维护性之间取得平衡,尤其在大型项目中效果显著。简单函数中过度使用可能使代码冗余,需结合注释或文档工具补充说明。通过规范宏标记,避免对输入参数误修改或未初始化输出参数的使用。宏定义不增加运行时开销,仅作为静态标记,适合性能敏感场景。宏标记无语法约束,若错误标注(如将输入参数标为。统一宏命名(如Windows API中的。可能被其他库占用),需团队统一规则。一、参数方向标记的实现原理。

2025-03-13 09:54:48 311

原创 关于C++中Debug/Release版本差异

文件(Windows)或嵌入调试符号(Linux),包含变量名、函数名和行号信息,便于断点调试。建议开发阶段使用Debug版本定位问题,发布时切换至Release模式并验证跨平台行为。Debug模式下运行会因断言失败崩溃,Release模式下跳过断言直接输出。),保留完整函数调用栈和变量初始化(如未初始化变量填充。),可能内联函数、删除未使用变量,但可能导致调试困难。一、C++中Debug与Release版本的区别。移除调试信息,文件体积更小,且不生成。

2025-03-10 19:42:56 821

原创 海康线扫相机平场矫正教程

1、白纸准备确保视野中有一张平整且无折痕的白纸,使其完全铺满相机的整个视野。2、行高设置将行高参数设定为 2048。3、灰度值控制相机端图像的灰度值应维持在 120 - 160 这个区间内。同时,最亮像素点与最暗像素点的灰度值差值不得超过 4 倍。在调整灰度值时,尽量开启增益功能。4、 图像模糊处理为减少白纸对平场矫正的影响,需将相机端获取的图像进行模糊化处理。具体操作是对镜头进行虚焦,使整体图像变得模糊。

2025-03-10 19:32:19 669

原创 API和SDK

API:是一组预先定义的函数、协议和规范,用作不同软件系统之间的接口,允许应用程序相互交互和通信。SDK:是一个更全面的工具包,包含开发软件所需的各种工具、库、文档和相关文件。

2025-03-06 20:41:56 226

原创 C++指针避坑总结

指针的使用需要非常小心,常见的错误包括空指针解引用、内存泄漏、重复释放、野指针、非法内存访问、悬空指针和指针类型不匹配。始终检查指针是否为nullptr。动态分配的内存要及时释放。避免重复释放内存。释放内存后将指针置为nullptr。确保指针访问的内存是合法分配的。避免强制转换不兼容的指针类型。通过这些简单的规则,可以有效避免指针相关的致命错误。

2025-03-06 20:33:34 844

原创 C++20中的std::format

需启用C++20标准并包含头文件。运行时动态格式字符串。

2025-03-04 16:29:05 683

原创 Halcon2025年3月试用license

见链接。

2025-03-03 09:52:31 358

原创 Halcon VariableInspect (变量检查拓展)安装指南

网址2;

2025-02-27 13:49:05 201

原创 C++ 跨平台DLL封装示例(含命名空间与继承结构)

源文件(MyDll.cpp)

2025-02-21 12:00:00 319

原创 C++自定义函数默认参数使用指南

默认参数只能在函数声明或定义中指定一次,不能同时在声明和定义中设置。默认参数必须从右向左连续设置,未指定默认值的参数不能出现在右侧。参数按从左到右顺序赋值,无法跳过中间参数。默认参数可能引发与重载函数的歧义调用。C++自定义函数默认参数使用指南。

2025-02-21 09:00:00 356

原创 gen_gauss_filter用于检测带方向的线条

在Halcon中使用高斯滤波器检测多方向线条时,角度参数的选取需要综合考虑滤波器方向响应带宽、频域对称性和检测需求。

2025-02-20 20:43:09 212

原创 Halcon报错“Abnormal program termination: received signal 11“

内存:32.0 GB。

2025-02-20 20:20:45 443

原创 一种图像小面积缺陷放大的方法分享

将图像的每个像素点(i,j)的值复制到新图像的四个位置:(i,j)、(i,j+1)、(i+1,j)、(i+1,j+1)。这样原图的每个像素变成2x2的块,从而实现长宽各放大两倍,小面积缺陷放大两倍。

2025-02-19 09:00:00 452

原创 封装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 443

原创 【C++】线程封装与守护监控线程实现

本文将介绍如何通过二次封装来管理线程,以及如何利用守护线程机制监控多个线程的状态,确保程序的稳定性和高可用性。在复杂的应用场景中,直接使用 std::thread 来创建线程虽然简单,但其灵活性有限。实际应用往往需要对线程进行更精细的控制,例如设置线程优先级、CPU 亲和性,以及对线程状态进行管理等。为解决这些问题,我们对 std::thread进行了二次封装,通过引入 WorkerThread 类和 DaemonThread 类,实现了线程的高效管理和稳定运行。

2025-02-18 08:45:00 684

原创 PLC通信交互系统技术分享

这是一个C++程序,用于与西门子PLC进行通信,处理SN码、拍照信号、检测结果等流程。代码中使用了状态机,通过不同的状态来管理交互步骤。

2025-02-17 13:56:30 732

原创 用C++实现点到三角形最小距离的计算

【代码】用C++实现点到三角形最小距离的计算。

2025-02-16 21:49:59 232

原创 【项目问题】连通域排序和自由选取

连通域按面积排序允许自定义面积区间筛选连通域自定义选取排序后的区域范围// 调用示例:筛选面积50-200的区域0, 8);// 默认选取前9个// 调用示例:选取排序后的第3-7名(索引2-6)0, INT_MAX, // 不限面积区间2, 6);// 选取第3到第7个区域。

2025-02-16 21:34:05 302

原创 ubuntu系统Valgrind工具的使用

1块共1,024字节。

2025-02-14 10:12:46 570

原创 【Halcon】optimize_fft_speed的使用

optimize_fft_speed` 是 Halcon 中用于优化 FFT(快速傅里叶变换)速度的函数。它通过调整 FFT 的实现参数来加速后续的 FFT 计算。

2025-02-11 18:52:21 263

原创 C++ 通过XML读取参数

方法2(一次性读取一个节点中的所有参数,然后调用一次函数)是最推荐的方案,因为它在性能和可维护性之间取得了较好的平衡。如果文件后期确实会非常大(如超过100MB),可以考虑进一步优化,例如分批处理节点,或者采用流式解析(如XMLReader)来减少内存占用。

2025-02-10 21:25:26 1105

原创 Ubuntu 如何安装Snipaste截图软件

首先,从Snipaste的官方网站或GitHub Releases页面下载。

2025-02-10 21:25:07 501

原创 HALCON 数据结构

例如,在处理一系列图像时,可以将这些图像存储在一个Iconic数组中,然后对整个数组进行统一的处理,如批量读取、批量显示等。例如,在进行轮廓跟踪时,可以先生成一个初始轮廓,然后通过跟踪算法更新轮廓的位置和形状,实现对物体轮廓的实时跟踪。例如,在进行图像特征提取时,可以先定义一个域,将特征提取的范围限制在该域内,从而加快特征提取的速度。通过句柄,可以方便地对这些对象进行操作和管理。例如,在视频监控中,可以提取行人或车辆的轮廓,然后通过轮廓跟踪算法实时跟踪目标的位置和运动轨迹,为视频分析和监控提供重要的信息。

2025-02-08 22:15:59 159

原创 C++如何解决头文件循环引用问题?

优先使用前向声明:当只需要指针或引用时,前向声明是最简单的解决方案。合理拆分头文件:将相关的声明放在同一个头文件中,避免在头文件中包含不必要的其他头文件。使用接口抽象:通过抽象接口解耦具体实现,遵循依赖倒置原则。实现逻辑放在cpp文件:头文件只包含声明,具体实现放在cpp文件中。使用PIMPL模式:对于复杂的类,考虑使用PIMPL模式,可以完全隐藏实现细节,提供更好的ABI兼容性。通过这些方法,可以有效地解决C++中的头文件循环引用问题,并提高代码的可维护性和编译效率。

2025-02-08 22:09:23 482

原创 Deepseek本地部署教程

将大型模型部署于本地电脑,能够带来一系列显著优势,但这一选择并非人人皆宜。:若您的电脑装备了高性能独立显卡,如NVIDIA系列,且显存至少达到2GB(适用于1.5B参数模型)或更高配置(例如,14B模型需11GB显存),这将为本地运行大型模型提供坚实基础。:在处理包含敏感信息的数据时,本地部署能有效规避云端传输可能带来的数据泄露风险,确保数据安全无虞。:对于需要与本地工作流程紧密结合的任务,如自动化脚本执行、深度数据分析等,本地部署能提供更流畅、高效的集成体验。

2025-02-08 14:14:00 1870

原创 [Halcon] 灰度值插值介绍

灰度值插值是一种在图像变换中必不可少的方法,因为图像并非连续函数,而是数字化的,即由与(离散)灰度值相关联的像素组成。例如,当图像被旋转并缩小如图1.1所示时,输出图像的像素不再对应输入图像的某一个确切像素。相反,它可能包含原始图像中多个像素的部分。因此,需要一种方法来计算输出像素的灰度值。一种可能的方法是使用原始图像中恰好一个像素的灰度值,例如,其中心距离结果像素中心最近的像素。然而,这意味着原始图像中包含的信息以及图像质量可能会在变换过程中丢失。另一种选择是在原始图像中的多个像素之间进行灰度值插值。

2025-02-07 21:24:13 176

原创 Halcon缓存?内存泄漏?

1、前言除⾮必要,否则不建议修改 HALCON 自带的缓存设置。

2025-02-07 16:08:52 516

原创 【Halcon】基于形状匹配的剃须刀刀片检测与缺陷分析代码流程讲解

我们将在模板上定义两个矩形区域,分别用于测量刀片牙齿的宽度和间距。随后,我们将这些测量区域平移至模板的中心位置,以便在后续处理中能够更准确地定位和分析。测量区域是用于实际检测刀片牙齿宽度的矩形区域。这里生成了两个矩形,一个对应刀片的一侧,另一个用于另一侧。然后将这些区域对齐到模板中心,方便在目标图像中匹配后使用。

2025-01-06 16:40:22 77

原创 Linux下HALCON的使用

在编译软件的时候,会用到(链接)一些平台相关的类库,如果是在本地运行的话,一般不用作特殊处 理,但由于嵌入式软件的运行平台不是本地,所以要做一些特殊处理,让编译环境依赖的类库脱离本地依 赖,使用嵌入式平台的类库来进行链接,处理这一过程就叫作交叉编译工具链。具体的解释就是:交叉编译出来的程序, 所要运行的目标环境中,各种资源,都相对有限,所以很难进行直接的本地编译。, 内存,硬盘等资源,而嵌入式开发上的那点资源,只够嵌入式(Linux。下,直接编译出来程序,可以运行的程序(或者库文件),其可以直接在。

2025-01-04 16:58:41 329

原创 【Halcon】数据结构汇总

图像(Image)区域(Region)轮廓(XLD)整型(integer)实型(real)布尔类型(boolean)字符串类型(string)数组(tuple)向量(vector)句柄(handle)Iconic数组(Objects)Vector数组

2024-12-28 15:15:07 219

原创 Halcon 直连相机

使用大华相机,待补充...

2024-12-17 15:01:27 413

原创 45°取图

针对45°角拍摄屏幕时可能出现的缺陷,主要是畸变问题,我们需要考虑的是镜头的特性以及它们如何影响图像的成像质量。

2024-12-05 15:38:34 830

原创 std::vector 扩容原理

是 C++ 标准库中最常用的容器之一,它提供了动态扩展的数组功能。

2024-12-05 15:34:52 393

原创 【Halcon】字典 set_dict_tuple create_dict

函数用于创建一个新的空字典,并将其通过DictHandle返回。这个字典类似于关联数组容器,允许存储与唯一键(整数或字符串)相关联的任意数量的值。每个键可以引用一个元组或一个图标对象。这些值分别使用或函数存储在字典中,并可以使用或函数再次检索。存储在字典中的数据始终是原始数据的副本,无论是控制参数还是对象。因此,在调用或之后,可以立即重用原始数据。copy_obj只要每个线程访问不同的键,多个线程就可以同时添加、检索和删除键。作为这一规则的例外,多个线程可以同时从字典中检索相同的键。

2024-12-05 07:30:00 501

原创 【Halcon】把检出结果保存为原始图片大小格式

第一种方法比较耗时,但可以把每个缺陷显示为不同颜色;第二种方法不能把每个缺陷显示为不同颜色,但速度较快;

2024-12-05 07:00:00 266

原创 【Halcon】矫正区域被剪裁???

【代码】【Halcon】矫正区域被剪裁???

2024-12-04 07:30:00 388

原创 Halcon 试用license免费更新

https://download.youkuaiyun.com/download/weixin_42215453/90075537

2024-12-04 07:30:00 607

Halcon2025年4月试用文件 2025.04-support-licenses

Halcon2025年4月试用文件 2025.04-support-licenses

2025-04-01

海康相机平场矫正对比图

海康相机平场矫正对比图

2025-03-10

2025.03_support_licenses.zip

Halcon2025年3月试用licenses

2025-03-03

Python客户端与C++服务端的TCP通信代码框架模板

核心点说明 (一)安全增强体系 传输加密:采用TLS 1.3协议加密通信 双向认证:使用CA证书验证客户端/服务端身份 HMAC签名:消息包含SHA256-HMAC签名防篡改 输入校验:客户端验证图片目录有效性,服务端校验协议格式 (二)性能优化措施 连接复用:Python客户端保持长连接 线程池管理:C++服务端使用线程池处理并发请求 协议优化:二进制协议头+JSON主体,支持大数据传输 异步IO:使用Boost.Asio实现非阻塞网络通信 (三)工程化改进 配置管理:常量集中管理,支持后续配置化扩展 日志系统:Python端集成logging模块 异常处理:多层try-catch保证服务稳定性 模块化设计:分离网络层、业务层、安全层

2025-02-17

1、Halcon基础介绍及软件基础操作

1、Halcon基础介绍及软件基础操作

2025-02-16

使用C++结合Halocn图像处理库计算图像清晰度及用于自动对焦

使用C++结合Halocn图像处理库计算图像清晰度及用于自动对焦

2025-02-14

使用C++把检测结果参数写入XML中

使用C++把检测结果参数写入XML中

2025-02-14

关于图像识别的代码框架

一个关于图像识别的代码框架,分别使用Python和C++(OpenCV)实现。这个框架将包括图像加载、预处理、特征提取、模型训练和预测等基本步骤 代码说明 1、数据加载和预处理:从指定文件夹加载图像,并进行灰度化处理。 2、图像预处理:调整图像大小并进行归一化处理。 3、特征提取:使用HOG(Histogram of Oriented Gradients)方法提取图像特征。 4、数据集划分:将数据集划分为训练集和测试集。 5、模型训练:使用SVM(支持向量机)进行模型训练。 6、模型评估:在测试集上评估模型的准确率。

2025-02-12

C++ 通过XML读取参数

C++ 通过XML读取参数

2025-02-10

Halcon 2025年2月 license

Halcon 2025年2月 license

2025-02-06

Halcon图像处理领域的灰度值插值方法研究及应用

内容概要:本文详细介绍了灰度值插值的各种方法,特别是应用于图像变换的情景。首先解释了什么是灰度值插值,并强调它在图像变换中的必要性。随后分类讲解了几种主要插值方法的原理和技术特点:包括最近邻插值、双线性插值、等权重和平滑高斯加权双线性插值、双三次插值及其变形形式。文中提到,每种方法各有优劣,具体体现在处理时间、图像质量和特殊应用场景方面。同时探讨了插值技术对旋转、放大缩小不同类型图像转化的影响。另外,讨论了一个系统变量(int_zooming)对于插值精度及速度的具体影响。 适合人群:数字图像处理从业者,计算机视觉研究人员,图像处理技术爱好者和学生。 使用场景及目标:适用于各种涉及到图片大小调整(如放大或压缩),角度修正任务的技术项目。例如医学影像处理、遥感图像解析、图形艺术编辑等领域;有助于改善最终显示画质并确保处理效率。 其他说明:提供了若干实验例子来对比不同插值算法的表现情况。此外,在进行选择合适的插值方式时还需充分考量实际项目的性能要求。建议读者结合自身需求合理选用最佳方案。

2025-01-22

计算机视觉领域HALCON内存管理和缓存机制详解及其应用

内容概要:本文详细探讨了计算机视觉工具HALCON的内存管理与缓存机制,主要涵盖了内存层次结构中的主内存管理方式(RAM)、三种类型的缓存:图片缓存、全局内存缓存、临时内存缓存。文章不仅描述了各缓存的工作原理及其优化应用程序性能的方式,而且针对常见内存问题(比如疑似内存泄露的情况),提供了一系列解决方案和技术支持方法,以帮助使用者提高效率,合理利用资源。 适合人群:主要适用于具有一定编程经验尤其是C/C++/.NET开发者和图像处理工程师。他们希望能够深入理解内存管理原理,提升HALCON的应用技巧,优化图像处理流程。 使用场景及目标:①在处理大规模图像数据集时,了解不同级别的内存缓存对程序性能的具体影响,进而选择最优配置;②遇到与内存相关问题时,能够运用文中提供的调试技术和调整策略,保障系统平稳运行;③针对具体应用场景(如工业检测或机器视觉识别),通过调节HALCON的相关设置来最大化内存利用率和响应速度。 其他说明:文中还包括了关于缓存关闭、mimalloc内存分配策略、多线程环境下内存管理特点等高级话题,并附有不少实际案例用于说明各种内存管理技巧的实际效果对比。

2025-01-22

基于Arm平台的HALCON应用开发详解及其实现方法

内容概要:本文档详细介绍在基于ARM的平台上使用HALCON进行机器视觉应用开发的方法和步骤。首先概述了使用HALCON的基本要求、局限性和与其他平台的区别,重点讲解了不同语言(如C、C++、Python、C#)的应用开发流程,特别是在Linux环境下如何配置和部署环境变量、许可证管理和编译工具的选择。此外,强调了通过交叉编译方式创建可执行文件的必要性和具体步骤。同时探讨了利用HDevelop环境进行开发,然后将其转化为实际代码的操作方法,并介绍了几种常见的开发场景和技术要点,如HDevEngine的用法和注意事项。 适合人群:具有嵌入式开发经验和对机器视觉有一定了解的开发者。 使用场景及目标:适用于需要在基于ARM的平台上搭建机器视觉系统的公司或科研机构,尤其是希望使用HALCON这一高效工具进行图像处理的应用开发者,目的是能够独立完成从环境配置到代码部署的一系列工作。 其他说明:尽管HALCON本身并不完全支持ARM架构下的所有特性和工具,但在正确配置的基础上仍能满足大部分项目的功能需求。对于追求性能优化和高效率的开发者而言,本指南提供了详尽的技术路径和支持信息,有助于减少开发成本,提升工作效率。

2025-01-22

HALCON视觉开发与应用环境安装配置及许可指南

内容概要:本文详细介绍 HALCON 视觉开发环境的安装流程及其不同版本的配置方法,并涵盖对 HALCON 开发及运行时所需的软硬件要求。文章首先介绍了 HALCON 的两个版本及配置方式,而后详细讲解了 HALCON 在 Windows 和 Linux 系统上的安装步骤、卸载流程以及如何安装和配置第三方组件支持深度学习等功能。此外,文章深入讨论了 HALCON 各种许可证获取、绑定的方法及相关注意事项。最后部分提供了 Docker 环境下 HALCON 的部署指导,并附上了常见故障的排查技巧。 适合人群:视觉开发工程师、从事工业自动化领域的工程师、机器学习与计算机视觉研究者以及相关专业的技术人员和学生。 使用场景及目标:①协助用户在计算机或嵌入式设备上快速配置好 HALCON 环境;②指导开发者根据项目需求选择合适的产品版本并获得恰当的许可证书;③支持技术人员理解和解决常见的系统集成难题,从而保障应用程序高效稳定的运行。 其他说明:文中提供了详细的图表对比各个版本间的差异,同时列出了具体的操作指令供参考。尤其重视许可认证方面的问题分析,包括但不限于如何获取、绑定、迁移以及更新许可证等问题。针对深度学习的应用场景,也给出了必要的硬件准备清单和技术栈建议。

2025-01-22

Halcon 24.11 2024年12月试用文件

Halcon 24.11 2024年12月试用文件

2024-12-03

CreateDefectLine.py

# 制作线类缺陷:每样3条 # 1、制作水平亮暗线,宽度:最大5个像素,长度:图像宽的1, 1/2, 1/3, 1/4; # 2、制作垂直亮暗线,宽度:最大5个像素,长度:图像高的1, 1/2, 1/3, 1/4; # 3、制作水平亮暗点线,宽度:1个像素,构成线的点的个数,[3,100]; # 4、制作垂直亮暗点线,宽度:1个像素,构成线的点的个数,[3,100];

2021-08-23

CreateDefectDot.py

# 制作点类缺陷: # 1、制作单亮点; # 2、制作单暗点; # 3、制作二连亮点; # 4、制作二连暗点;

2021-08-23

机器人的数学基础齐次变换矩阵及其运算

机器人的数学基础齐次变换矩阵及其运算

2018-10-30

EasyX图形库

EasyX图形库EasyX 是针对 C++ 的图形库,可以帮助 C++语言初学者快速上手图形和游戏编程。 比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形学的各种算法,等等。

2018-10-30

空空如也

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

TA关注的人

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