自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(128)
  • 收藏
  • 关注

原创 数据预处理避坑指南:中心化、标准化、归一化的异同与选择

数据预处理中的中心化、标准化和归一化是提升模型性能的关键步骤。中心化通过消除变量间的共线性,改善病态矩阵,使计算更稳定;标准化将数据变换为均值为0、标准差1的分布,消除量纲影响;归一化则把数据映射到固定区间(如[0,1])。标准化对异常值更鲁棒,归一化适合无异常值且需固定范围输入的场景。选择方法时需考虑数据特征和算法需求:干净数据用归一化,有异常值或近似正态分布则选择标准化。这些处理能显著提高数值稳定性并优化模型表现。

2025-11-03 07:30:00 915

原创 C++ 类中常量与静态成员全面总结

C++中的常量与静态成员特性对比摘要: 常量成员变量必须在初始化列表初始化且不可修改;常量成员函数承诺不修改对象状态,只能被常量对象调用;常量对象自身状态不可变且只能调用const函数。静态成员变量为类级别共享,需类外定义;静态成员函数无this指针,只能访问静态成员。关键区别:常量特性作用于对象层面保证不变性,静态特性实现类级别共享。综合使用可提升代码安全性和资源利用率。

2025-10-29 07:45:00 764

原创 C++ const 与 static 详解:变量、函数、类成员的全面解析

本文系统解析了C++中const与static关键字的核心用法。const用于定义不可修改的常量,包括基本类型、指针、引用及类成员变量,强调初始化时机和不可变性。static则控制变量生命周期和可见性,包含静态局部变量(函数内持久化)、静态成员变量(类级别共享)和静态成员函数(不依赖实例的类工具方法)。文章还展示了二者在单例模式等设计模式中的综合应用,并比较了C++11引入的constexpr等现代特性。正确使用这些关键字能提升代码安全性、可维护性和性能优化。

2025-10-29 07:45:00 1491

原创 圆拟合方法全览

本文介绍了多种圆拟合方法,包括代数拟合(Kåsa和Taubin方法)和几何拟合(迭代最小二乘法)。Kåsa方法计算简单但对噪声敏感,Taubin方法精度更高。几何拟合通过最小化几何距离实现更精确的拟合,使用高斯-牛顿优化方法,但需要迭代计算。文中提供了MATLAB代码实现,并分析了各方法的特点和优缺点,为不同应用场景下的圆拟合提供了灵活选择。

2025-10-27 07:45:00 1168

原创 散点拟合圆:Matlab两种方法实现散点拟合圆

该文介绍了圆拟合的数学原理与实现方法。首先给出MATLAB的圆拟合函数,通过最小二乘法将非线性问题转化为线性求解。接着详细推导了圆拟合的数学原理,包括标准方程展开和线性变换过程。文章提供了Python实现代码,使用numpy解线性方程组并可视化结果。同时给出两种MATLAB实现方式:最小二乘法和优化函数法。最后推导了Pratt圆拟合方法的数学模型和代数推导过程,包括目标函数构建和中心化简化计算。这些方法适用于从散点数据中准确拟合圆的几何参数。

2025-10-19 15:11:09 512

原创 C++ const 与 static 详解:变量、函数、类成员的全面解析

C++中的const和static关键字是控制变量行为和存储方式的核心工具。const用于声明不可变性,可修饰变量、函数参数和成员函数,保证数据不被意外修改;static则控制存储期和链接性,使局部变量持久化、限制全局变量作用域,并实现类成员的共享。两者结合可定义类级别的编译期常量(static constexpr)。使用时需注意const成员函数不能修改状态、static成员需在类外定义等规则,遵循优先使用constexpr、参数用const&等最佳实践,以提升代码安全性和性能。

2025-10-17 07:30:00 1083

原创 CT重建中对数据完备性的理解

摘要:CT三维重建的核心问题包括数据完备性条件、扫描轨迹设计和锥束/平行束差异。数据完备性需满足Tuy条件,即所有穿过物体的平面必须与X射线源轨迹相交,否则会出现伪影。扫描轨迹如圆轨迹、螺旋轨迹影响数据覆盖范围,其中螺旋轨迹更适合长物体扫描。锥束扫描效率高但算法复杂,平行束精度高但速度慢。实际应用中需权衡速度、精度和覆盖范围,不同场景选择不同扫描方式。数据完备性不足会导致重建图像质量下降,需通过轨迹优化或算法改进来缓解。

2025-10-09 08:30:00 1436

原创 C++ 如何对类的实例化对象个数进行计数

C++实例计数实现方法摘要 本文介绍了三种C++中实现对象实例计数的方法: 静态成员变量方法(最常用): 使用静态变量记录实例数 在构造/拷贝构造/移动构造中递增计数 在析构函数中递减计数 提供静态方法获取当前计数 CRTP模式(编译时多态): 通过模板基类封装计数逻辑 派生类自动获得计数功能 支持不同类型独立计数 单例模式中的计数: 线程安全的单例实现 使用atomic和mutex保证线程安全 记录单例创建次数 每种方法都包含完整实现代码和测试用例,展示了实例创建/销毁时的计数变化。静态成员方法适合常规类

2025-10-09 08:00:00 343

原创 constexpr 与 const 的区别及编译期常量详解

编译期常量与constexpr详解 核心概念 编译期常量是在编译阶段就能确定其值的常量,具有零运行时开销的特点,可以用于数组大小、模板参数等场景。constexpr是C++11引入的关键字,专门用于表示编译期可计算的常量表达式。 关键区别 const:保证运行时不可修改,可在编译期或运行期初始化 constexpr:必须在编译期确定值,适用于变量、函数和构造函数 高级特性 constexpr函数具有双重特性:当参数为constexpr时编译期计算,否则运行时计算 C++14放宽限制,允许constexpr函

2025-10-09 08:00:00 1464

原创 C++11 智能指针详解

C++11智能指针详解:高效安全的内存管理方案 摘要:C++11引入的智能指针通过RAII机制实现了自动内存管理,解决了传统指针的内存泄漏等问题。主要包括三种类型:1) unique_ptr提供独占所有权,禁止复制但支持移动语义,性能最优;2) shared_ptr采用引用计数实现共享所有权,允许多个指针指向同一对象;3) weak_ptr作为shared_ptr的辅助,解决循环引用问题。智能指针通过将资源生命周期与对象绑定,在析构时自动释放内存,显著提高了代码安全性和可维护性。文章详细介绍了各类智能指针的

2025-10-09 07:30:00 1629

原创 平面及三维空间中直线的表示方法

摘要:直线在数学中有多种表示方法,适用于不同场景。平面直角坐标系中常见形式包括一般式、斜截式、点斜式、两点式、截距式、参数式、点法式和法线式,各有优缺点。极坐标系中可用极坐标方程表示,向量法则适用于高维空间,三维空间中还有对称式、参数式和两平面交线形式。不同表示方法根据已知条件和应用需求选择,如斜截式直观但无法表示竖直线,一般式通用但参数不唯一。

2025-09-22 07:45:00 1240

原创 去卷积的数学基础:维纳滤波器公式的完整推导与解读

维纳滤波推导摘要:维纳滤波通过频域设计最优滤波器,最小化估计图像与真实图像的均方误差。从成像模型b=c*x+n出发,在频域建立优化目标E[|X-HB|^2],假设信号与噪声独立,推导得出最优滤波器H(ω)=C/(|C|²+1/SNR)。最终复原公式为逆傅里叶变换后的频域滤波结果,其性能取决于系统传递函数C和信噪比SNR。高SNR时退化为逆滤波,低SNR时抑制噪声。推导基于标量频域处理,假设信号噪声不相关且均值为零。

2025-09-18 07:30:00 919

原创 去卷积:用魔法打败魔法,让图像清晰

图像模糊可能由镜头缺陷、相机抖动、运动模糊等因素引起。本文介绍了非盲去卷积方法实现图像复原,重点分析了维纳滤波原理及其MATLAB实现。文章首先建立图像模糊的卷积模型,指出简单频域除法会放大噪声;随后详细推导了维纳滤波的数学表达式,该方法通过引入噪声相关阻尼因子实现最小均方误差估计。实验对比显示,维纳滤波能有效抑制噪声,而传统逆滤波对噪声敏感。文章还简要提及约束最小二乘方滤波和Richardson-Lucy迭代算法等改进方法。通过理论分析和代码实现,展示了经典去卷积技术在图像复原中的应用效果。

2025-09-14 17:48:58 1170

原创 C++线性代数库之Eigen库入门学习

Eigen是一个高性能C++线性代数库,支持矩阵、向量运算和数值求解。其纯头文件设计无需编译,直接包含即可使用。核心功能包括稠密/稀疏矩阵、线性求解、特征值计算等,支持动态和固定大小矩阵。提供直观的运算符重载(如矩阵乘法)和逐元素操作(通过Array类)。常用矩阵初始化方法包括Zero()、Identity()和Random(),支持转置、逆矩阵等运算。Eigen广泛应用于科研和工程领域,具有模块化设计和开源友好特性(MPL2许可证)。安装方式灵活,可通过包管理器或手动下载集成。

2025-09-11 07:45:00 1125

原创 C++在控制台打印不同颜色的文本:让日志输出更炫酷

摘要: ANSI转义序列是控制终端文本显示的标准,包括颜色、字体等样式。起源于1970年代,虽硬件终端减少,但在命令行工具、服务器管理等场景仍广泛应用。核心语法以\033[代码m形式呈现,支持8/16色系统及多种文本属性(加粗、斜体等)。通过组合前景/背景色代码可实现丰富显示效果,使用时需注意重置序列\033[0m以避免样式延续。代码示例展示了C/C++中如何实现彩色输出,体现了ANSI在提升命令行界面可读性方面的重要价值。(149字)

2025-09-07 15:32:40 637

原创 告别凌乱输出:Spdlog 极简入门,5分钟打造C++高性能日志系统

C++高性能日志库spdlog简介 spdlog是一个基于C++11的高性能、头文件only的日志库,具有以下特点: 快速高效:利用模板和内联技术实现极快速度 功能丰富:支持异步日志、多日志级别、多种格式输出 跨平台:兼容Windows、Linux、macOS 简单易用:提供简洁的API和多种安装方式 核心功能 多日志级别:trace到critical 6个级别 线程安全:提供多线程和单线程版本 多种输出方式:控制台、文件、系统日志等 格式化输出:支持类似Python的格式化语法 安装方式灵活,支持直接包含

2025-09-01 07:45:00 1191

原创 RTX 3090 显卡显存带宽详解

摘要:RTX 3090显卡凭借936GB/s的显存带宽成为性能旗舰,其高带宽特性由384-bit位宽和GDDR6X显存技术共同实现。GDDR6X采用PAM4调制技术,使数据传输效率翻倍。这种高带宽显著提升8K渲染、光线追踪和AI计算的性能表现。相比同代产品,RTX 3090带宽较RTX 3080高出23%,但低于专业级A100显卡。该显存带宽指标是处理高分辨率、复杂计算任务的关键参数,为专业创作和高端游戏提供强大支持。(148字)

2025-08-25 07:30:00 1304

原创 约束最小二乘法理论推导及应用举例

本文介绍了带约束最小二乘问题的求解方法。通过拉格朗日乘数法将约束优化问题转化为KKT系统,构建包含目标函数和约束条件的线性方程组。详细推导了KKT系统的数学形式,给出解析解表达式,并指出实际应用中直接求解KKT系统的优势。以三次多项式拟合为例,展示MATLAB实现过程,要求目标函数在指定点与二次函数相切。最后强调KKT系统解的唯一性、数值稳定性以及大规模问题的迭代解法等注意事项。该方法可有效处理带等式约束的优化问题。

2025-08-25 07:30:00 1066

原创 线性代数之最小二乘法解超定方程组理论推导

摘要:高斯在1809年完善了最小二乘法理论,将其与概率论和正态分布结合,超越了勒让德的代数框架。1801年,他运用该方法成功预测谷神星轨迹,验证了其处理不完整观测数据的能力。最小二乘法通过最小化残差平方和求解超定方程组(方程数多于未知数),其解可表示为$x_{LS}=(A^TA)^{-1}A^Tb$(当$A$列满秩)。该方法在多元线性拟合中广泛应用,如通过正规方程$X^TX\beta=X^TY$求解参数$\beta$。几何上,解对应观测向量在矩阵列空间的正交投影。

2025-08-20 07:30:00 1300

原创 图像对比度增强之灰度变换

灰度变换是一种基础的图像增强技术,通过改变像素灰度值来改善图像质量。主要方法包括:1)图像反转(黑白颠倒,增强暗部细节);2)对数变换(扩展低灰度值区域);3)伽马变换(调节亮/暗区域对比度);4)分段线性变换(含对比度拉伸、灰度级分层和比特平面分层)。这些方法可分别实现对比度增强、特定区域突出和亮度均衡等功能。不同变换方法适用于不同场景,如伽马变换可用于设备响应校正,比特平面分层可用于分析图像高频/低频信息。这些技术为图像处理提供了灵活的空间域增强手段。

2025-08-11 07:30:00 814

原创 线性代数之向量、矩阵求导公式

本文系统梳理了矩阵求导的基本概念与运算规则。主要内容包括:1)两种布局约定(分子布局和分母布局)及其维度关系;2)不同变量组合的求导定义(标量对向量/矩阵、向量对标量/矩阵等);3)核心运算法则(线性法则和乘积法则)。重点阐述了向量对向量求导的两种布局形式及其转换关系,并给出了标量对矩阵求导的具体示例。文中通过表格和公式清晰地展示了各类求导结果的维度关系,为矩阵微积分运算提供了系统的参考框架。

2025-08-01 07:30:00 1415

原创 通过MATLAB符号计算推导透视逆变换

本文系统介绍了透视变换及其逆变换的推导过程。透视变换是一种将图像从一个视角投影到另一个视角的3×3矩阵变换,可以将矩形映射为任意四边形,广泛应用于图像校正和视角变换。文章详细阐述了透视变换的数学原理和参数含义,重点推导了透视逆变换的解析解,通过MATLAB符号计算和克莱姆法则两种方法得到一致结果。验证表明,两种推导方式虽然表达式不同但均正确有效。透视逆变换在计算机视觉中具有重要应用价值,如反投影和去畸变等场景,其适用条件是变换矩阵行列式不为零。

2025-07-28 07:30:00 1641

原创 如何使用MATLAB内置函数solve进行符号计算(求解方程)

本文介绍了MATLAB中符号计算(solve)和数值求解(fsolve)两种方法的区别与应用。符号计算基于数学定理推导,可得到解析解,适用于代数方程和微分方程求解;数值计算则通过离散化处理获得近似解,适用于复杂非线性方程组。文中通过具体示例展示了两种方法的实现步骤,包括单变量方程、多变量方程组以及微分方程的求解过程,并对比了二者的计算精度与适用场景,为工程计算和理论研究提供了实用参考。

2025-07-26 07:45:00 1070

原创 矩阵分解技术全面综述:原理、算法与应用

本文系统介绍了矩阵分解的核心方法,主要包括LU分解、LDLT分解及其应用。LU分解将方阵分解为单位下三角矩阵L和上三角矩阵U的乘积,适用于主元非零的方阵,可用于线性方程组求解和矩阵求逆。LDLT分解是LU分解的对称形式,将对称矩阵分解为LDL^T形式,适用于对称正定矩阵,在优化问题和数值分析中有重要应用。文章详细阐述了各分解方法的数学原理、算法实现步骤(附MATLAB/Python代码)和典型计算示例,为矩阵计算提供了系统的理论基础和实用工具。

2025-07-21 07:15:00 1316

原创 图像压缩技术总结(SVD,下采样,DCT,霍夫曼编码)

图像压缩技术分为无损和有损两大类。无损压缩(如霍夫曼编码、LZW)保留原始数据,适合文档和医学图像;有损压缩(如JPEG、WebP)通过DCT变换、量化等技术大幅减少数据量,适用于照片和网络图像。核心方法包括空间域压缩(下采样、预测编码)、变换域压缩(DCT、小波变换)和熵编码(霍夫曼、算术编码)。现代技术如深度学习和SVD提供更高压缩比。JPEG等标准流程结合变换、量化和熵编码实现高效压缩。未来趋势是深度学习与感知优化的结合,不同场景需权衡压缩率、质量和计算复杂度。

2025-07-17 07:30:00 1857

原创 使用MATLAB对符号函数进行求导、积分、求极限

本文介绍了MATLAB符号数学工具箱在函数解析计算中的应用,主要包括符号求导、积分和极限运算。通过diff()函数可实现一阶、高阶导数及偏导数的精确计算;int()函数支持不定积分、定积分及反常积分的求解;limit()函数可计算函数在特定点的极限值,包括左右极限和无穷极限。文章还对比了符号计算与数值计算的差异,并展示了使用subs()函数对符号表达式进行赋值运算的方法。这些功能为数学分析和工程应用提供了强大的解析计算工具,相比数值近似能获得更精确的结果。

2025-07-17 07:30:00 1107

原创 SVD、DCT图像压缩实践

摘要:本文介绍了两种图像压缩方法:SVD(奇异值分解)和DCT(离散余弦变换)。SVD通过分解图像矩阵为U、Σ、V三个矩阵,保留前k个奇异值实现压缩,压缩率与图像质量需权衡;实验显示k=50时压缩率为25.70%。DCT则将图像转换到频域,舍弃高频系数(右下角区域)以压缩数据,类似JPEG流程。两种方法均通过MATLAB实现,并对比了不同参数下的压缩效果,SVD直接控制奇异值数量,DCT则通过掩模矩阵选择性保留低频成分。结果表明,两种方法都能有效压缩图像,但压缩率提升会导致质量下降。

2025-07-14 21:58:26 506

原创 LZ4图像压缩实践(大文件数据压缩)

本文介绍了LZ4无损压缩算法的原理及其实现。LZ4基于LZ77算法,通过滑动窗口查找重复数据并用(距离,长度)引用替代,实现高效压缩。其优势在于高速压缩/解压、低CPU占用和可调压缩率。文章详细解析了LZ4的数据格式、压缩流程(扫描+匹配)和解压过程,并提供了C++封装类LZ4ImageProcessor的实现代码,支持RAW数据的压缩和解压功能。该实现通过LZ4官方开源库,在压缩数据前会存储图像宽高信息,解压时进行校验确保数据完整性。

2025-07-14 07:30:00 1441 1

原创 基于霍夫曼(Huffman)编码的图像压缩

摘要 霍夫曼编码是一种基于概率的无损数据压缩算法,通过为高频符号分配短码、低频符号分配长码来构建最优前缀码。本文详细阐述了霍夫曼编码原理,包括构建Huffman树、生成编码表的过程,并以"EABCBAEDBCEEEDCEBABC"为例展示了具体实现步骤。文章还介绍了霍夫曼编解码算法在图像处理中的应用流程,包括树构建、序列化、数据压缩和文件格式规范。最后提供了C++实现的RAW图像压缩代码框架,涵盖频率统计、树构建、编码生成和序列化等关键步骤。该算法能有效减少数据冗余,满足信息熵理论的最小

2025-07-11 07:30:00 1133

原创 无约束优化之单纯形法(Nelder-Mead Algorithm)

摘要: 无约束单纯形法(Nelder-Mead方法)是一种无需导数的直接搜索优化算法,适用于求解非线性优化问题。通过维护n维空间的单纯形(n+1个顶点),动态执行反射、扩张、收缩等几何操作调整搜索方向,逐步逼近最优解。其核心优势在于适应非光滑、黑箱函数等复杂场景,但无法保证全局最优性。算法参数包括反射系数(ρ=1)、扩张系数(γ=2)、收缩系数(α=0.5)等,通过迭代更新单纯形结构实现目标函数的最小化。

2025-06-23 07:30:00 1573

原创 CUDA编程入门之错误检查

本文介绍了CUDA运行时API的常见错误类型(cudaError_t)及其检测方法,包括cudaSuccess、cudaErrorInvalidValue等常见错误码。文章提供了两种错误检测函数(cudaGetErrorName/GetErrorString)的使用方法,并展示了封装好的错误检查宏CUDA_CHECK和LAST_KERNEL_CHECK的实现代码。此外,还包含了日志打印和设备信息输出的实用函数示例,通过变参实现格式化日志输出,并详细展示了获取GPU设备属性的方法。最后附上了CUDA编程相关参

2025-06-20 21:00:10 1016

原创 Python实现图片格式批量转换(支持HEIC)

图像批量转换工具摘要 本文介绍了两种基于Python的批量图像格式转换方案:1)常规图像格式转换,使用Pillow库支持JPG/PNG/BMP等常见格式互转;2)HEIC特殊格式转换,需配合pillow_heif插件处理。两种方案均支持:批量处理文件夹(保留子目录结构)、异常文件自动跳过、输出质量优化。对于HEIC格式的EXIF数据过长问题,提供了清除元数据的解决方案。文章还给出了多线程加速版本,并详细说明使用方法(需安装Pillow和pillow_heif依赖),适用于婚礼照片等大批量图像格式转换场景。

2025-06-18 07:30:00 832

原创 向量/矩阵的范数、谱半径和条件数

本文介绍了向量和矩阵的常见范数定义及计算方法。向量的范数包括L1范数(绝对值之和)、L2范数(欧几里得距离)和无穷范数(最大绝对值);矩阵范数涵盖1范数(最大列和)、2范数(最大奇异值)、无穷范数(最大行和)和Frobenius范数(元素平方和的平方根)。此外还介绍了谱半径(特征值绝对值的最大值)和条件数(衡量矩阵稳定性的指标)。文中给出了各种范数的数学定义、计算示例和对应的MATLAB实现代码,便于实际应用参考。这些概念在线性代数、数值计算等领域具有重要作用。

2025-05-26 07:30:00 1244

原创 C++实时统计数据均值、方差和标准差

采用Welford 算法:避免传统方法(如先计算总和再求均值)的浮点数精度损失,保证了数值稳定性。处理边界条件:当数据量(n < 2)时,方差返回0.0。本文算法的优势:内存效率高,仅需要维护3个成员变量,适合实时或大数据场景。对比传统算法:避免存储全部数据,计算复杂度O(1)。

2025-04-28 21:37:30 1392

原创 衡量矩阵数值稳定性的关键指标:矩阵的条件数

矩阵的条件数衡量矩阵对扰动或误差的敏感性。对于非奇异矩阵A∈Rn×nA∈Rn×nCondA∥A∥⋅∥A−1∥CondA∥A∥⋅∥A−1∥其中∥⋅∥∥⋅∥为矩阵范数。2-范数(谱条件数)Cond2Aσmax⁡σmin⁡Cond2​Aσmin​σmax​​σmax⁡σmax​和σmin⁡σmin​分别为最大和最小奇异值。1-范数和∞-范数。

2025-04-27 23:05:53 2188

原创 TensorRT入门:ONNX转换为TensorRT引擎文件

trtexec 工具是 TensorRT 的命令行工具,位于 TensorRT 的安装目录中,随 TensorRT 的安装就可以直接使用。trtexec,不仅打包了几乎所有 TensorRT 脚本可以完成的工作,并且扩展丰富的推理性能测试的功能。通常我们使用 trtexec 完成下面三个方面的工作,一是由 Onnx 模型文件生成 TensorRT 推理引擎,并且可以序列化为 .plan 文件。二是可以查看 Onnx 或者 .plan 文件的网络的逐层信息。

2025-04-27 07:30:00 2877

原创 pytorch手动调整学习率

在此,将进行拓展,学习如何手动更新学习率(即不使用pytorch自带的学习率调度器)。当我们在使用预训练的模型时,需要对分类层进行单独修改并进行初始化,其他层的参数采用预训练的模型参数进行初始化,这个时候我们希望在进行训练过程中,除分类层以外的层只进行微调,不需要过多改变参数,因此需要设置较小的学习率。总而言之,通过引入学习率衰减,在模型训练初期,会使用较大的学习率进行模型优化,随着迭代次数增加,模型逐渐收敛,学习率会逐渐进行减小,保证模型在训练后期不会有太大的波动,从而更加接近最优解。

2025-04-22 07:30:00 1315

原创 C++(OpenCV)实现MATLAB的edge(I, “sobel“)边缘检测

函数的C++代码,我们需要复现其完整的边缘检测流程,包括梯度计算、非极大值抑制和阈值处理。此代码实现了类似MATLAB的Sobel边缘检测流程,结合非极大值抑制和自动阈值处理,能够有效提取图像边缘。为了实现类似于MATLAB的。

2025-04-17 20:54:46 611

原创 C++动态链接库的创建及使用

运行时加载:程序运行时动态加载,节省内存。独立更新:更新库无需重新编译主程序。可重用性:由于多个应用程序可以共享一个DLL,因此它们可以共享相同的代码和数据,从而提高了代码的可重用性。节省内存:由于DLL在运行时才加载到内存中,因此它们可以在不占用过多内存的情况下提供所需的功能。稳定性:由于多个应用程序共享相同的DLL,因此如果DLL中的代码或数据发生问题,则可以在一次更新后修复所有使用该DLL的应用程序。

2025-04-17 08:00:00 2658

原创 C#调用C++动态库时出现`System.DllNotFoundException`错误的解决思路

确认DLL位置:将DLL放在C#输出目录。检查依赖项:确保所有依赖的DLL存在。缺少目标XXXdll的依赖,例如要用到的是A.dll,A.dll用到时需要添加B.dll动态库文件,在用到时需要两个dll同时存在。其中,B.dll导出有问题时通过dumpbin检查A.dll不能检查出来,需要进一步检查B.dll。匹配平台:统一x86或x64。验证导出函数:使用dumpbin检查名称。安装VC++运行时:确保目标机器已安装。通过逐步排查上述问题,通常可以解决。

2025-04-07 21:02:43 1684

jsoncpp源码下载直接使用

jsoncpp源码以及github项目 JsonCpp 是 C++ 中一个常用的第三方 Json 解析库,JsonCpp 是开源以及跨平台的。

2024-06-03

vtk学习资料,VTK图形图像开发进阶及源代码

vtk学习资料: 1.VTK图形图像开发进阶及源代码 2.VTKTextbook 3.VTKUsersGuide

2023-04-25

算法工程师-C++和数学基础知识

C++书籍目录: 1.C++编程规范 2.C++沉思录 3.Effective C++ 4.Primer C++ 5.彻底搞懂C指针 6.程序员的自我修养 数学基础: 1.数值分析 2.数字图像处理第三版 3.统计学习方法 4.泛函分析

2023-04-12

空空如也

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

TA关注的人

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