- 博客(274)
- 收藏
- 关注
原创 计算机视觉---Halcon概览
Halcon是德国MVTec开发的工业级机器视觉算法库,以高精度、鲁棒性和工程化工具链著称。其模块化架构包含2000+算子,支持图像处理(滤波、分割)、高级视觉(模板匹配、OCR)、3D视觉(点云处理)及深度学习(目标检测、语义分割)。通过HDevelop IDE实现图形化开发,支持多语言调用和硬件加速(GPU/CUDA)。典型应用包括电子制造(PCB检测)、汽车工业(零部件测量)等领域,结合传统算法与AI技术,提供端到端解决方案。Halcon凭借工业级稳定性和算法深度,成为机器视觉领域的标杆工具。
2025-07-29 00:00:00
1261
原创 C++---初始化列表(initializer_list)
C++11引入的std::initializer_list是实现列表初始化的核心机制,它作为轻量级只读视图封装同类型元素序列,支持容器初始化、函数参数传递和自定义类型构造。该特性通过为容器和类设计专门的initializer_list构造函数,使得{}语法能自动转换为临时initializer_list对象,优先匹配对应构造函数而非传统重载,从而提供简洁直观的初始化方式。其底层通过指针和长度实现高效访问,但需注意元素临时性和只读限制。
2025-07-29 00:00:00
1754
原创 Windows---动态链接库Dynamic Link Library(.dll)
DLL通过动态链接机制为应用程序提供共享功能支持。本文从DLL的定义、发展历史和文件结构三方面展开分析: 本质与价值:DLL是包含可执行代码和数据的二进制文件,通过运行时加载实现代码复用、资源节省和模块化开发,与EXE文件在功能定位和执行方式上有本质区别。 演进历程:从DOS时代的静态链接困境,到Windows 95引入成熟的DLL机制,再到.NET框架下的托管DLL,DLL技术不断演进,已成为Windows生态的核心支柱。
2025-07-28 00:00:00
1404
原创 QT---概览
Qt是跨平台C++应用程序开发框架,由The Qt Company开发维护,支持Windows、Linux、macOS等主流平台。其核心特性包括:元对象系统实现动态特性,信号与槽机制实现对象间通信,丰富的GUI组件库以及配套工具链。经过Qt4、Qt5到Qt6的演进,逐步优化模块结构,引入QML/Qt Quick等现代UI开发技术。Qt采用模块化设计,包含基础模块(如Qt Core、Qt Gui)和扩展模块(如Qt Network、Qt SQL)。开发模型基于元对象系统和信号与槽机制,支持属性系统实现动态访问
2025-07-28 00:00:00
897
原创 C/C++---I/O性能优化
C++ I/O性能优化技巧总结:通过禁用标准流同步(sync_with_stdio(false))和解除绑定(cin.tie(nullptr))可显著提升cin/cout速度,使其接近scanf/printf。输出优化建议使用'\n'替代endl,采用stringstream缓存或直接使用printf;输入推荐scanf或fread批量读取,并设置大缓冲区。文件I/O应优先选择二进制模式,增大缓冲区并整块读写数据。核心思路是减少I/O次数、避免频繁刷新和格式转换。
2025-07-26 00:00:00
932
1
原创 Orbbec开发---数据流与数据流操作
本文深入探讨了Orbbec深度相机开发中数据流的本质、操作意义与实现方法。数据流作为连接硬件与软件的核心纽带,具有三层核心属性:传感器数字信号传输的物理本质、包含元数据的标准化帧序列结构特征,以及多源异构的时空特性。数据流操作通过SDK封装显著降低了开发门槛,解决了多流同步、数据一致性及处理效率等关键问题。文章详细阐述了数据流操作的六个步骤:设备枚举、流配置选择、管道配置与启动、帧数据获取与解析等,并提供了代码示例与优化技巧。
2025-07-26 00:00:00
681
原创 Linux---systemd自启动
本文详细介绍了在Linux系统中使用systemd配置和管理自启动服务的方法。主要内容包括:服务单元文件的基本结构(Unit、Service、Install三个核心部分),各配置段的详细参数说明(如依赖关系、执行命令、资源限制等);服务类型的区别与应用场景;环境变量、资源限制和日志监控的配置技巧;以及服务安装、管理的完整操作流程。文章还提供了Node.js应用自启动的示例配置,并总结了关键注意事项,如文件权限管理和避免服务无限重启等问题。通过systemd的精细化控制,可以实现可靠的服务自启动管理。
2025-07-25 00:00:00
463
原创 C++开发---奥比中光(Orbbec)的ob库
Orbbec SDK是奥比中光开发的深度视觉工具包,支持Astra、Gemini等系列深度相机。其核心架构包括ob::Context全局上下文类(负责设备枚举、日志管理)、ob::Device设备控制类(提供传感器管理、硬件参数配置)以及流配置类(定义分辨率、帧率等参数)。该SDK采用分层设计,包含设备抽象、流管理和数据处理模块,支持从基础设备操作到高级三维重建的全流程开发。开发者需通过ob命名空间访问API,主要功能涵盖多设备管理、深度/RGB/红外传感器控制、帧同步及数据流配置等深度视觉应用关键环节。
2025-07-25 00:00:00
1886
原创 深度图像滤波
本文系统介绍了深度图像滤波的六大核心方法:1)去噪滤波消除随机噪声;2)边缘滤波保留几何边界;3)空域滤波融合邻域信息;4)时域滤波实现序列平滑;5)填洞修复缺失数据;6)各向异性滤波保持方向特征。针对深度图像特有的传感器噪声、环境干扰和几何噪声等问题,各类滤波方法在噪声抑制、边缘保持、数据完整性和时空一致性等核心目标上展现出不同优势。特别探讨了统计滤波器、双边滤波、引导滤波、超像素分割、卡尔曼滤波等具体技术的原理与应用,为深度图像质量优化提供了系统解决方案。
2025-07-24 00:00:00
1221
原创 深度相机---像素转物理尺寸
深度相机将像素尺寸转换为物理尺寸的关键在于坐标系转换与深度信息的结合。核心过程涉及四个坐标系(像素、图像、相机、世界)的映射关系,通过相机内参矩阵和深度值实现像素到三维坐标的转换。计算方法基于相似三角形原理,利用像素差与焦距、深度值推导物理距离。视场角(FOV)可作为无内参时的替代方案,通过角度分辨率与目标距离估算物理尺寸。实际应用中需考虑镜头畸变校正等影响因素以提高精度。该技术广泛应用于工业测量、机器人导航等领域,其准确性依赖于相机校准和几何关系的正确建模。
2025-07-24 00:00:00
1449
原创 数据交换---JSON格式
JSON(JavaScript Object Notation)是一种轻量级数据交换格式,已成为互联网数据交换的事实标准。本文系统介绍了JSON的核心知识:1)基础概念与历史背景,对比XML等传统格式;2)严格的语法规则与6种数据类型(字符串、数字、布尔值、null、对象、数组);3)与XML、YAML、CSV的优劣势对比;4)跨语言实现方法,重点解析JavaScript中的序列化(JSON.stringify)与反序列化(JSON.parse)操作。JSON因其简洁性、高效性和跨平台支持,在API交互、配
2025-07-23 00:00:00
1198
原创 标记语言---XML
XML(可扩展标记语言)是一种用于数据存储与传输的标记语言,其核心特点是可自定义标签和数据结构化。XML文档采用树状结构,必须严格遵循闭合标签、正确嵌套、属性值引号等语法规则,与HTML相比更加严谨。XML支持命名空间解决命名冲突,并通过DTD或XML Schema定义文档约束规则。DTD语法简单但功能有限,而XML Schema支持更复杂的数据类型和验证。XML广泛应用于跨平台数据交换,其灵活性和扩展性使其成为早期互联网数据标准的重要选择。
2025-07-23 00:00:00
717
原创 奥比中光深度相机开发
本文介绍了奥比中光深度相机的开发流程,包括环境配置、SDK架构和核心组件说明。主要内容有:1)硬件需奥比中光深度相机(如Astra Pro)和USB 3.0接口;2)软件需安装OrbbecSDK并配置开发环境;3)详细代码示例展示设备初始化、深度数据流配置、帧数据处理和点云生成;4)说明了相机参数获取和模式切换方法。文章提供了完整的C++开发示例,涵盖从设备连接、深度数据采集到三维点云转换的全流程实现。
2025-07-22 00:00:00
563
原创 C/C++---emplace和emplace_back
摘要:C++中emplace和emplace_back是高效插入元素的容器方法。emplace_back适用于序列容器(如vector),直接在尾部构造对象;emplace适用于关联容器(如map),在合适位置构造元素。两者均避免创建临时对象,提升性能。emplace_back返回void,emplace返回插入结果。优先使用emplace系列方法,但需注意参数匹配和异常安全。传统方法(push_back/insert)在特定场景下仍有用。
2025-07-22 00:00:00
473
原创 机器视觉---深度图像存储格式
本文系统介绍了深度图像存储格式与处理技术。主流深度相机(奥比中光、Intel RealSense、Kinect等)普遍采用16位无符号整数(uint16)作为默认格式,以毫米为单位表示距离,无效值通常标记为0。OpenCV提供完善的深度图像处理功能,支持16位无符号整数(CV_16U)和32位浮点数(CV_32F)两种存储格式,包含数据转换、可视化等基本处理方法。深度图像处理需注意归一化显示、无效值处理等关键环节,以满足不同应用场景的需求。
2025-07-21 00:00:00
1156
原创 深度相机的工作模式(以奥比中光深度相机为例)
深度相机工作模式是设备根据不同应用需求,在精度、帧率、功耗等指标间进行平衡的运行状态。奥比中光等厂商提供的典型模式包括:高精度测量模式(适用于工业检测)、标准模式(通用场景)、快速模式(高帧率)、低功耗模式(延长续航)等。这些模式通过调整硬件参数(如曝光时间)和软件算法(如降噪策略)来实现,用户可根据具体场景需求(如精度要求、环境光照条件)灵活切换。模式切换通常通过API实现,封装了复杂的参数调优过程,降低了使用门槛,使深度相机能广泛应用于消费电子、工业检测等领域。
2025-07-21 00:00:00
1559
原创 相机参数的格式与作用
本文系统介绍了计算机视觉中相机标定的关键参数及其作用。相机内参矩阵(3x3)包含焦距、主点坐标和切向畸变系数,用于三维到二维坐标转换;畸变系数(1x5)描述径向和切向畸变,用于图像校正;外参矩阵(3x4)包含旋转和平移参数,实现世界坐标系到相机坐标系的转换;投影矩阵结合内外参完成三维点投影;矫正矩阵则用于立体视觉中的图像对齐。这些参数共同构成了相机标定的数学基础,为三维信息恢复提供支持。
2025-07-20 00:00:00
860
原创 C/C++---文件读取
本文介绍了C++中使用fstream类进行文件读取的方法,包括文本和二进制文件读取。重点讲解ifstream的基本操作:通过构造函数或open()打开文件,采用is_open()检查状态,使用get()、getline()或>>操作符进行字符、行或格式化读取,最后用close()关闭文件。同时涵盖错误处理、文件模式设置及二进制文件读取的特殊处理,并提供了完整的文件读取示例代码,强调文件读取在系统调试中的重要作用。
2025-07-20 00:00:00
755
原创 C++---cout、cerr、clog
C++标准输出流对象对比摘要: cout、cerr和clog是C++标准库中的三个关键输出流对象,分别用于不同场景。cout用于标准输出,支持格式化显示和重定向;cerr专用于错误输出,无缓冲特性确保即时显示;clog则适合日志记录,具有缓冲机制。三者均可重定向,主要区别在于缓冲特性和使用场景:正常程序输出用cout,紧急错误用cerr,日志记录用clog。高级应用包括自定义缓冲区、多线程同步输出和RAII流管理技术。
2025-07-19 00:00:00
1068
原创 计算机视觉与机器视觉
机器视觉与计算机视觉的本质差异 机器视觉(MV)与计算机视觉(CV)虽均涉及图像处理,但核心目标与技术路径截然不同: 定义:CV是让计算机“看懂”世界(如识别物体、场景理解),MV是用视觉技术解决工业问题(如缺陷检测、尺寸测量)。 技术栈:CV以算法为核心(如深度学习模型),MV是软硬件协同系统(工业相机+光源+控制协议)。 应用场景:CV覆盖安防、医疗等泛化领域,MV聚焦工业自动化(电子制造、汽车质检等)。 性能要求:CV追求高精度与泛化能力,MV强调实时性(毫秒级响应)与鲁棒性(恶劣环境稳定运行)。 简
2025-07-19 00:00:00
1070
原创 十六进制与嵌入式系统及通信系统
嵌入式系统与通信协议中广泛使用十六进制表示数据,因其简洁(1字节=2位十六进制)、可读性强且与硬件直接映射。十六进制便于位操作、寄存器配置和协议分析,在串口、SPI、I2C等通信中普遍应用。相比二进制更紧凑,比十进制更直观,能快速反映位模式,是嵌入式开发调试的重要工具。实际应用中需注意大小写、字节序及数据校验等细节。
2025-07-18 00:00:00
761
原创 C/C++---I/O流库 rdbuf()函数
C++中的rdbuf()函数是I/O流库的核心成员,用于访问和操作流缓冲区。该函数有两种形式:获取缓冲区指针和设置新缓冲区。主要应用包括:1) 直接操作流缓冲区高效处理数据;2) 实现流重定向,如将输出重定向到文件;3) 操作内存和字符串流;4) 创建自定义流缓冲区。高级应用涉及二进制数据处理和流过滤器实现。rdbuf()提供了底层流控制能力,在需要高效I/O操作或自定义流行为时非常有用,是连接流对象和缓冲区的关键接口。
2025-07-18 00:00:00
654
原创 Opencv---cv::minMaxLoc函数
OpenCV中的cv::minMaxLoc函数是计算机视觉中用于定位图像极值的核心工具,能够高效地在单通道或多通道图像中寻找全局最小值和最大值,并返回其数值和坐标位置。该函数支持多种数据类型和掩码操作,适用于图像预处理、目标检测、工业质检等场景。通过分析函数原型、参数含义和工作原理,本文详细介绍了其使用方法,包括基础的单通道灰度图分析和进阶的ROI区域分析示例。关键点包括:函数通过指针返回极值结果,支持灵活参数组合;多通道图像需拆分处理;掩码机制
2025-07-17 00:00:00
972
原创 C++---emplace_back与push_back
C++中push_back和emplace_back是向容器添加元素的两种方法。push_back通过拷贝或移动已有对象到容器尾部,而emplace_back利用完美转发直接在容器内存中构造对象,避免了额外的拷贝/移动操作。二者的核心差异在于:构造方式(push_back需要完整对象,emplace_back接收构造参数)、性能表现(emplace_back通常更高效)和适用场景(简单对象用push_back,复杂构造用emplace_back)。emplace_back通过原位构造技术特别适合处理构造代价
2025-07-17 00:00:00
1385
原创 Windows 下 Visual Studio 开发 C++ 项目的部署流程
摘要:在Windows环境中使用Visual Studio开发C++项目时,部署环节需要重点解决文件整合、依赖管理和路径配置问题。核心要点包括:正确配置项目类型和目标平台(x86/x64),选择Release模式编译;统一管理输出目录,确保可执行文件与依赖库(如CRT运行时和第三方DLL)位于同一路径;通过生成事件或脚本自动化部署过程,减少手动操作失误;合理处理配置文件和资源文件的路径问题。部署前建议使用Dependency Walker等工具检查依赖完整性,确保程序在不同环境中的兼容性。
2025-07-16 00:00:00
1057
原创 部署项目将dll放到system32?不可取
摘要: 将第三方DLL文件放入Windows系统目录System32虽能临时解决依赖问题,但存在严重隐患。这种做法可能引发权限问题、版本冲突、系统兼容性风险,甚至被恶意利用。正确的部署方式包括:将DLL与程序放在同一目录、设置PATH环境变量共享DLL、使用专用目录或通过应用程序清单指定路径。遵循规范部署可确保程序稳定运行,避免系统安全风险。(149字)
2025-07-16 00:00:00
267
原创 YOLOv11开发流程
YOLOv11目标检测实战指南 YOLOv11是实时目标检测算法YOLO的最新版本,在保持高速检测的同时提升了精度。本文介绍了YOLOv11的完整使用流程:从环境搭建(Python、PyTorch)、数据准备(数据集结构、标注格式)到模型配置(预训练模型选择、自定义结构)。详细讲解了训练命令、参数设置和高级技巧(混合精度、多GPU训练),以及模型验证、推理(图片/视频/摄像头)和导出方法(ONNX、TensorRT等格式)。最后还提供了模型部署方案,帮助用户快速掌握YOLOv11的完整应用流程。
2025-07-15 00:00:00
780
原创 YOLOv11调参指南
YOLOv11调参指南:本文详细介绍了YOLOv11目标检测算法的参数体系与调优策略。内容涵盖四大核心参数模块:模型结构参数(骨干网络、颈部网络)、训练参数(优化器、学习率调度、数据增强)、检测参数(锚框、检测头)以及部署参数(量化、加速)。针对不同应用场景(小目标检测、实时检测、长尾分布数据集)提供了具体调参方案,并介绍了超参数自动优化方法。文章还给出了从基线模型训练到最终参数微调的完整实战流程,帮助开发者根据具体任务需求优化模型性能。
2025-07-15 00:00:00
1347
原创 Opencv---blobFromImage
cv::dnn::blobFromImage是OpenCV中用于图像预处理的关键函数,将图像转换为深度学习模型所需的4维blob格式。主要功能包括调整尺寸、归一化像素值、通道转换(BGR→RGB)和减去均值。函数参数控制目标尺寸、缩放比例、均值处理等细节,需根据模型要求设置。示例展示了YOLOv5模型的预处理流程,包括尺寸调整、归一化和通道转换。注意事项包括通道顺序、均值处理顺序及裁剪/拉伸选择。该函数是连接原始图像与模型输入的重要预处理步骤。
2025-07-14 00:00:00
655
原创 ROS2---NodeOptions
ROS 2中的NodeOptions是一个用于灵活配置节点初始化参数的类,它允许开发者在不修改源代码的情况下自定义节点行为。主要功能包括:参数处理(自动声明参数、加载YAML文件)、命名空间设置与话题重映射、回调组配置(MutuallyExclusive/Reentrant类型)、进程内通信、QoS策略调整等。通过链式调用方法,开发者可以便捷地设置节点运行时行为,满足不同应用场景的需求,如多机器人模拟、测试环境配置和性能优化等。NodeOptions使ROS 2节点的设计更加模块化和可复用。
2025-07-14 00:00:00
1364
原创 Opencv---深度学习开发
模块展开,该模块支持加载预训练模型、预处理输入数据、执行推理计算以及解析输出结果。该流程适用于分类、检测、分割等多种任务,关键在于根据模型类型正确预处理输入和解析输出,同时可通过硬件加速优化推理速度。将预处理后的blob设置为神经网络的输入层,需指定输入层名称(可通过模型结构文件查看,如Caffe模型通常为。方法执行推理,获取输出结果。需根据具体模型的输出格式解析(如分割模型输出每个像素的类别,需转换为彩色掩码)。根据模型任务类型(分类、检测、分割等),解析输出的。,TensorFlow可能为。
2025-07-12 20:59:06
579
原创 C++---<cctype>
在C++里,<cctype>是一个至关重要的标准库头文件,它的主要作用是对单个字符进行分类和转换操作。这个头文件是从C语言的<ctype.h>继承而来的,为了能在C++中更好地使用,它把所有的函数都放在了std命名空间中。
2025-07-12 20:53:18
384
原创 源码编译与交叉编译
本文系统介绍了源码编译与交叉编译的核心技术与实践方法。首先解析了编译本质和完整流程(预处理→编译→汇编→链接),详细讲解了构建工具(Make/CMake/Autotools)和编译参数优化。在交叉编译部分,重点阐述了工具链搭建、环境配置、依赖管理等关键技术,并提供了CMake/Autotools的配置示例。此外,文章还涵盖了高级优化技术(LTO、架构优化)、调试方法以及容器化编译环境构建。最后通过嵌入式Linux驱动编译案例和常见问题解决方案,帮助开发者掌握跨平台编译的核心技能。
2025-07-10 10:02:55
1509
原创 补丁文件---从技术原理到实践应用
本文系统阐述了补丁文件的技术原理与发展历程。补丁文件作为记录软件版本差异的数据载体,经历了从文本补丁到二进制补丁的技术演进,形成了包含冷补丁、热补丁等多种类型的技术体系。文章详细解析了diff、BSDiff等核心算法原理,并梳理了补丁制作的标准流程与工具链。随着移动互联网发展,补丁技术已从单纯的漏洞修复发展为支持增量更新、热部署等现代化软件交付方案,成为软件生命周期管理的关键环节。
2025-07-10 09:46:06
312
原创 机器人VLA模型(Vision-Language-Action)
VLA(Vision-Language-Action)模型的核心是构建视觉、语言、动作的多模态闭环系统,实现从感知到执行的端到端映射。
2025-07-07 20:41:08
1276
原创 视觉语言大模型(VLM)
**视觉语言大模型(Vision-Language Model, VLM**)是人工智能领域的重要研究方向,旨在实现对视觉和语言信息的联合理解和生成
2025-07-07 20:32:47
1005
原创 模仿学习(Imitation Learning)
模仿学习,又称“从演示中学习”(Learning from Demonstration)或“学徒学习”(Apprenticeship Learning),是机器学习领域的重要分支。其核心目标是让智能体通过观察人类或专家的演示行为,学会在复杂环境中做出类似的最优决策,而无需显式定义奖励函数或进行大量试错。
2025-07-05 15:51:39
982
1
原创 C/C++字面量
C++字面量(Literal)是代码中直接表示的固定值,包括多种类型:整型(支持十进制、八进制、十六进制和二进制)、浮点型(小数和指数形式)、字符(单引号)、字符串(双引号)、布尔值(true/false)以及空指针(nullptr)。C++11新增功能包括Unicode字符/字符串、原始字符串和用户定义字面量(UDL)。编译器会根据字面量格式和后缀自动推导类型,合理使用后缀可以避免类型转换问题。字面量是C++编程的基础元素,理解其特性有助于编写更安全高效的代码。
2025-07-05 15:48:02
980
原创 计算机视觉---RealSense深度相机技术
英特尔RealSense技术平台通过多传感器融合实现高精度三维感知,核心产品包括D系列(主动立体视觉)、L系列(激光雷达)和T系列(跟踪相机),覆盖0.1-10米不同距离的应用场景。其SDK支持C++/Python等语言,提供深度处理、SLAM、AI模型等功能,广泛应用于机器人、AR/VR和工业检测。关键技术指标如D435i精度达±[email protected],L515激光雷达可实现毫米级测量。该平台通过模块化硬件和开源软件生态,持续推动机器视觉技术发展。
2025-07-04 19:50:05
1306
原创 灵巧手概览
灵巧手技术演进与创新趋势 灵巧手技术经历了从仿生学启蒙到标准化生态构建的五个发展阶段(1960至今),核心技术突破体现在结构仿生、感知增强、智能控制和材料创新四大维度。机械结构方面,典型五指灵巧手具备21-23个自由度,钛合金关节和UHMWPE腱绳等材料创新显著提升性能。驱动系统呈现电机、智能材料、流体和混合驱动四大技术流派,其中特斯拉Optimus的腱绳传动系统将手指模块重量减少55%。感知系统通过多模态传感器融合实现0.1mm空间分辨率和0.01N力控精度。
2025-07-04 19:40:42
940
【CMake构建系统】基于CMake的项目构建与管理:宏定义、嵌套CMakeLists及流程控制详细介绍了文档的主要内容
2025-04-03
### 【CMake项目构建工具】CMake保姆级教程:跨平台项目自动化构建与管理
2025-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人