自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Charlee44的技术驿站

本博客聚焦于地理信息科学(GIS)、计算机图形学与计算机视觉技术的探索与实践。GIS为我们构建认知世界的框架;计算机图形学将三维世界投影到二维视界;计算机视觉则从二维图像还原三维真实。这三者共同驱动着技术的前沿创新,期待与您一起交流探讨!

  • 博客(295)
  • 资源 (12)
  • 收藏
  • 关注

原创 WebGL简易教程——目录

WebGL简易教程的目录汇总

2019-12-08 12:20:46 4001 4

原创 《实时渲染》第2章-图形渲染管线-2.6管线综述

概述了实时渲染中图形渲染管线的四个主要阶段(应用程序、几何、光栅化和像素处理),并以交互式CAD应用中的华夫饼机模型为例说明其工作流程,同时对比了固定功能管线与现代可编程GPU的发展。

2026-01-17 22:51:40 521

原创 C++ 封装 C FFI 接口最佳实践:以 Hugging Face Tokenizer 为例

详细介绍了如何通过 Rust 的 C FFI 封装 Hugging Face tokenizers,并在 C++ 中利用 RAII 和智能指针实现安全、简洁、高效的资源管理,最终遵循现代 C++ 的“零法则”完成工业级封装。

2026-01-17 22:37:58 860

原创 《实时渲染》第2章-图形渲染管线-2.5像素处理

像素处理阶段包括可编程的像素着色(如纹理贴图)和不可编程但可配置的合并操作(如深度测试、混合与双缓冲),用于确定最终显示在屏幕上的颜色。

2026-01-16 23:18:38 617

原创 从DEM到三维地形:用PLY、OBJ、glTF构建GIS可视化模型

通过从DEM生成PLY白模、OBJ纹理模型到glTF标准资产的完整代码示例,系统揭示了三维GIS模型构建的核心原理与技术演进。

2026-01-16 21:14:20 1021

原创 《实时渲染》第2章-图形渲染管线-2.4光栅化

光栅化是将投影后的三角形图元转换为屏幕像素的过程,包含三角形设置和三角形遍历两个子阶段,用于确定像素覆盖并生成带插值属性的片元。

2026-01-14 20:24:37 345

原创 从DEM到等高线:手撕矢量与栅格两种地形表达

深入解析等高线地形图的矢量与栅格两种生成原理,并通过 C++ 代码从零实现 DEM 到等高线的完整流程,揭示 GIS 地形表达的核心逻辑。

2026-01-14 13:00:53 1106

原创 《实时渲染》第2章-图形渲染管线-2.3几何处理

几何处理阶段在GPU上完成顶点着色、投影、裁剪和屏幕映射,将模型从局部空间逐步转换至窗口坐标,为后续光栅化做准备。

2026-01-13 19:46:32 614

原创 不只是图片:深入理解 GIS 栅格数据本质与 GDAL 读写实战

深入剖析 GIS 栅格数据的本质——它不只是普通图片,还能表示高程、降雨、土地类型等空间信息,并通过 GDAL 演示了 GeoTIFF 的读取与创建实战。

2026-01-13 19:34:45 697

原创 《实时渲染》第2章-图形渲染管线-2.2应用程序阶段

应用程序阶段由CPU主导,负责处理输入、碰撞检测、剔除等任务,并将渲染图元传递给后续图形管线阶段,部分工作也可通过GPU计算着色器加速。

2026-01-10 14:07:12 181

原创 从Shapefile到GeoJSON:用GDAL实现GIS矢量数据读写与空间分析

通过 GDAL/OGR 实现了 GIS 矢量数据的完整处理流程——从 Shapefile 读取、WGS84 到 Web 墨卡托坐标转换,到 GeoJSON 写入,并演示了点与多边形拓扑关系(如 Contains)的判断方法。

2026-01-10 10:03:10 1146

原创 《实时渲染》第2章-图形渲染管线-2.1架构

介绍了实时渲染的核心——图形渲染管线,它由应用程序、几何处理、光栅化和像素处理四个阶段组成,各阶段协同工作将三维场景转化为二维图像。

2026-01-09 21:00:20 720

原创 GIS开发必知:WKT 与 EPSG 如何表达空间参考坐标系?附 GDAL 实现

深入解析 GIS 中空间参考坐标系的标准化表达方式——WKT 与 EPSG 编码,并通过 GDAL 代码实战演示如何创建与输出地理坐标系和高斯-克吕格投影坐标系。

2026-01-09 09:19:41 999

原创 《实时渲染》第1章-绪论-1.1内容概览

实时渲染是通过图形硬件快速生成交互式3D图像的技术,强调高帧率、低延迟与视觉真实感。

2026-01-08 22:09:17 769

原创 GIS中的“高度”到底指什么?一文厘清正高、正常高与大地高的区别

深入解析 GIS 中高程参考系统的核心概念——大地水准面、似大地水准面与参考椭球面的关系,厘清正高、正常高与大地高的区别及转换方法,并介绍我国高程基准与全球重力模型。

2026-01-08 22:02:19 1111

原创 CMake构建学习笔记32-CMake版本切换

通过 update-alternatives 管理多个 CMake 版本可解决兼容性问题,但需注意清除 Shell 命令哈希缓存以确保切换生效。

2025-12-27 22:51:24 660

原创 Git使用经验总结9-Git提交关联到Issue

GitHub/GitLab 等平台通过提交信息中的关键词自动关联或关闭 Issue,而 Git 钩子则用于在代码提交等操作时触发自定义自动化任务。

2025-12-27 22:48:36 478

原创 Ubuntu下编辑文本文件的方法

在 Ubuntu 系统中,从 MobaXterm 的图形化编辑到终端 Vim 操作,提供了多种灵活且适应不同权限与环境的文本文件编辑方法。

2025-12-26 22:11:47 1067

原创 从后端获取数据传输到前端进行显示(cpp-httplib+Vditor+Handlebars)

通过 cpp-httplib 后端提供 Markdown 文章的 JSON API,前端使用 Vite + Handlebars + Vditor 实现动态渲染与目录交互,完成了一个简单的前后端分离博客展示系统。

2025-12-26 22:06:38 322

原创 使用cpp-httplib发布静态文件服务

cpp-httplib 的静态文件服务依赖内置 MIME 映射,对 .md 等未识别类型会触发下载,而手动设置 Content-Type: text/markdown 可使其在浏览器中直接显示。

2025-12-25 19:57:16 839

原创 C++中JSON序列化和反序列化的实现

介绍了 C++ 中使用 nlohmann/json 库实现 JSON 序列化与反序列化的完整方案,包括基础用法、嵌套对象支持、向后兼容处理及可选字段的健壮设计。

2025-12-25 19:48:42 1302

原创 一种基于 SQLite3 的半自动 C++ ORM 实现

提出一种轻量级、半自动的 C++ ORM 风格封装,通过枚举字段名、std::variant 字段值与模板生成 SQL,在缺乏反射的 C++ 中实现类型安全、可维护的 SQLite CRUD 操作,并结合构建时代码生成确保数据库结构与代码同步。

2025-12-24 22:06:14 1384

原创 CMake构建学习笔记31-构建前执行可执行程序

通过一个 数据库结构生成器 的示例,说明了如何在 CMake 构建过程前按需自动生成 C++ 代码。

2025-12-24 22:03:31 219

原创 使用cpp-httplib发布HTTP服务

介绍了如何使用轻量级 C++ 库 cpp-httplib 快速构建支持文本、HTML 页面和 JSON 数据交互的 HTTP 服务器。

2025-12-20 23:46:35 334 1

原创 Ubuntu 下配置 SFTP 服务并实现安全数据共享

通过配置 Ubuntu 的 SFTP 服务并使用 bind mount 共享指定目录,可在 Windows 上借助 FreeFileSync 实现安全、高效的镜像同步。

2025-12-19 22:31:00 654

原创 Github项目CI&CD部署

从零搭建基于 GitHub Actions 的轻量级 CI/CD 流程,实现产品项目的灵活部署,并展望了向专业交付体系演进的方向。

2025-12-19 22:26:38 770 1

原创 为什么协程能让程序不再卡顿?——从同步、异步到 C++ 实战

结合 C++17 与 Boost.Coroutine2,详解协程在 Qt GUI 中缓解卡顿的原理与实现,并探讨其与多线程在 I/O 密集场景下的协同。

2025-12-18 21:56:54 1434

原创 最小二乘问题详解9:使用Ceres求解非线性最小二乘

通过对比手写 Levenberg-Marquardt 算法与使用 Ceres Solver 实现同一非线性最小二乘问题,深入解析了 Ceres 的核心机制、自动微分原理、优化配置及工程优势。

2025-12-18 21:25:42 991

原创 通过SSH反向隧道让远程服务器走本地代理

通过建立 SSH 反向隧道,使无法直连外网的远程 Linux 服务器能借助本地 Windows 电脑的代理网络执行 git pull 等操作。

2025-11-23 20:56:46 393

原创 Git使用经验总结8-Git仓库历史记录清除

介绍了一种通过彻底清除Git历史并重新初始化仓库的方式来移除敏感信息、减小仓库体积的方法,并提供了逐文件提交的PowerShell脚本以应对大文件或网络不稳定的情况。

2025-11-23 20:55:08 401

原创 CMake构建学习笔记30-Ceres Solver库的构建

介绍了使用自动化构建工具 BuildCppDependency 在 Windows 和 Linux 平台编译 Ceres Solver 的方法,详细说明了其依赖库及关键 CMake 构建参数,最终以静态库形式成功构建。

2025-11-22 12:58:32 736

原创 CMake构建学习笔记29-SuiteSparse库的构建

介绍了稀疏矩阵求解库 SuiteSparse 的构建方法,基于已构建的 OpenBLAS、gmp 和 mpfr 依赖,使用自动化工具 BuildCppDependency 在 Windows 和 Linux 平台完成编译,并详细说明了关键 CMake 构建参数的作用。

2025-11-22 12:56:26 445

原创 CMake构建学习笔记28-gmp&mpfr库的构建

介绍了如何使用自动化构建工具 BuildCppDependency 在 Windows 和 Linux 平台编译 GMP 与 MPFR 库,并展示了基于 Autotools 的 Linux 构建脚本细节。

2025-11-21 09:09:47 450

原创 CMake构建学习笔记27-初步完成C&C++自动化构建工具

BuildCppDependency是一个轻量级、跨平台的C/C++依赖库自动化构建工具,内嵌源码、无需外部依赖,支持完全离线构建并统一处理多种构建方式。

2025-11-21 09:07:56 602

原创 CMake构建学习笔记26-OpenBLAS库的构建

本文介绍在 Windows 下用 CMake 构建线程安全的 OpenBLAS,详解关键选项与多线程协同方法。

2025-11-20 09:07:24 1059

原创 C++信创适配踩坑记

记录了在国产信创环境(如银河麒麟 ARM64)下适配 C++ 项目时,通过配置 openEuler 软件源、自编译 GCC 9 并管理多版本编译器,最终成功解决运行时与依赖库问题的实战经验。

2025-11-20 09:03:49 1367

原创 最小二乘问题详解8:Levenberg-Marquardt方法

本文系统讲解了Levenberg-Marquardt方法的原理、算法流程与C++实现,阐明其如何通过自适应阻尼在Gauss-Newton与梯度下降之间智能切换,从而高效稳健地求解非线性最小二乘问题。

2025-11-04 20:53:58 1010

原创 最小二乘问题详解7:正则化最小二乘

本文系统阐述了正则化最小二乘(岭估计)的动机、理论推导、求解方法与数值实例,揭示其通过L2惩罚项改善病态问题和过拟合的机制。

2025-10-31 22:05:37 561

原创 最小二乘问题详解6:梯度下降法

介绍了使用梯度下降法求解非线性最小二乘问题的原理与实现,通过C++和Eigen库对指数模型进行参数拟合,展示了算法流程、雅可比矩阵计算及收敛行为,并对比了其在机器学习与计算机视觉中的应用差异。

2025-10-28 21:21:48 938

原创 最小二乘问题详解5:非线性最小二乘求解实例

通过拟合非线性函数的实例,详细讲解了非线性最小二乘问题中Gauss-Newton方法的实现过程,并给出了基于Eigen库的C++代码示例及收敛分析。

2025-10-16 20:05:10 1104

从后端获取数据传输到前端进行显示(cpp-httplib+Vditor+Handlebars)

简要的前后端分离项目的示例,从后端获取博文数据到前端进行展示

2025-12-24

常用Excel函数(find,lookup,vlookup)的使用总结

常用Excel函数(find,lookup,vlookup)的使用总结,带文档和数据

2025-06-21

给Markdown渲染网页增加一个目录组件(Vite+Vditor+Handlebars)

给Markdown渲染网页增加一个目录组件(Vite+Vditor+Handlebars)

2025-06-12

解决Vditor加载Markdown网页很慢的问题(Vite+JS+Vditor)

引入配置文件vite.config.js实现拷贝本地资源到特定目录,继而通过设置域内CDN的方式解决Vditor加载Markdown网页很慢的问题。

2025-06-03

使用Vditor将Markdown文档渲染成网页(Vite+JS+Vditor)

详细介绍了通过Vditor将Markdown格式文档渲染成Web网页的具体实现,并且实现了Markdown格式不具备的图片格式居中以及图片源更换的功能。

2025-05-30

通过JS模板引擎实现动态模块组件(Vite+JS+Handlebars)

详细介绍了通过JS模板引擎Handlebars实现动态模块组件的过程,并给出具体的代码实现。

2025-05-27

实现一个前端动态模块组件(Vite+原生JS)

实现一个前端动态组模组件(Vite+原生JS),实现的是一个博客分类专栏模块组件。

2025-05-22

【遥感与地理信息系统】高分辨率卫星影像真正射影像生成的替代方法比较分析:针对线阵相机场景的优化技术

内容概要:本文探讨了从高分辨率卫星影像生成真正正射影像(true ortho-photo)的不同方法,旨在解决传统差分纠正方法在城市地区产生的鬼影问题。文章介绍了z-buffer方法及其局限性,并提出改进措施如高度缓冲法和伪地面点技术。此外,还提出了基于角度和高度的光线追踪法以及排序DEM方法等新方案,特别适用于线扫描相机影像。实验结果表明,基于高度的光线追踪法在处理线扫描影像时具有较高的效率和较好的图像质量。最后,文中讨论了遮挡区域恢复的方法,包括多张影像合并和邻域纹理复制。 适合人群:从事地理信息系统(GIS)、遥感和测绘工程领域的研究人员和技术人员。 使用场景及目标:①理解传统正射影像生成方法的局限性;②掌握新的真正正射影像生成技术,特别是针对高分辨率卫星影像;③学习如何通过多种方法提高真正正射影像的质量,减少鬼影现象;④探索遮挡区域恢复的技术手段。 其他说明:本文不仅提供了理论分析,还进行了详细的实验验证,比较了不同方法的性能和效果,为实际应用提供了参考依据。对于需要处理复杂地形或城市地区的高分辨率影像的专业人士来说,这是一份非常有价值的参考资料。

2025-05-08

【遥感与地理信息系统】基于多边形的真正射影像生成技术:隐藏区域检测与补偿方法设计

内容概要:本文介绍了一种基于多边形的真正正射影像生成方法,旨在解决大比例尺和城市正射影像中存在的遮挡区域问题。传统方法依赖于栅格算法,存在内存占用大、速度慢且分辨率依赖的问题。而本文提出的方法通过多边形投影和空间叠加处理来检测遮挡区域,并选择最佳的正射影像进行修复。该方法不需要生成大型辅助矩阵,减少了内存使用,且与现有商业图像处理软件和空间分析工具兼容性良好。; 适合人群:地理信息系统(GIS)专业人员、遥感技术研究人员以及对正射影像处理感兴趣的工程师。; 使用场景及目标:①在大比例尺和城市环境中生成高质量的正射影像;②减少或消除由于建筑物和其他障碍物造成的遮挡区域和双映射效应;③提高正射影像处理的速度和效率,同时保持高精度。; 其他说明:该方法不仅显著降低了内存使用量,而且能够独立于分辨率运行,便于后续分析如接缝线生成和高程模型验证。此外,该方法易于集成到现有的软件环境中,未来还可以扩展应用于阴影区检测和其他类型的影像处理。

2025-05-08

矩阵QR分解的过程的PPT

详细讲解了矩阵QR分解的过程

2025-05-08

ch2正交三角分解的PPT

ch2正交三角分解的PPT

2025-05-08

《COM组件设计与应用》系列文章和代码

COM组件算是很老的技术了,现在估计用的人不多,整理资料时发现的,删除了可惜,现在微软还在大量应用这项技术。需要的同学自取,不设置动态调分。

2025-04-24

相机标定源代码(张正友标定法)

相机标定源代码,给自己的手机摄像头进行标定,采用张正友标定法,包含数据和源代码。

2024-09-27

热力图生成算法的具体实现(C++,OpenCV)

热力图生成算法的具体实现(C++,OpenCV),搭配https://blog.csdn.net/charlee44/article/details/124895644食用。

2022-05-21

Draco解压缩Mesh的示例

使用Draco解压缩1个Mesh的具体示例(包含Mesh数据),搭配https://blog.csdn.net/charlee44/article/details/124849704食用。

2022-05-18

Graphing.7z

在QT中绘制多边形的实例,主要是通过QT的重绘事件以及鼠标事件实现的。通过这个例子应该可以拓展出绘制多种图形的功能。

2020-03-06

VC进程通信之管道的使用

在VC中实现了进程通信(管道方式),在VC对话框中实现CMD命令的使用

2019-02-06

WebGL实现一个长方体包围盒随鼠标旋转缩放

通过一个长方体包围盒随鼠标旋转缩放具体实例,涵盖了WebGL中设置模型变换、视图变换、投影变换的技巧

2019-02-17

gmp-6.2.0.7z

通过源代码编译好的大数运算库gmp-6.2.0,编译好的库文件在\.libs文件夹下,动态库的导入库为libgmp.dll.a,像加载.lib一样在VS中加载即可。注意这是64位版本的。具体博客内容:https://blog.csdn.net/charlee44/article/details/104892290

2020-03-16

格网DEM生成不规则三角网TIN

格网DEM生成不规则三角网TIN的具体实现,搭配https://download.csdn.net/download/charlee44/18333143食用

2021-05-02

Resource.7z

两个数字地球的底图数据,详细介绍可以参看https://blog.csdn.net/charlee44/article/details/106304008

2020-05-23

Graphing.7z

简述了通过CGAL将一个多边形剖分成Delaunay三角网的过程,并且给出了具体的实现代码。博文地址在:https://blog.csdn.net/charlee44/article/details/104932321

2020-03-17

WebGL的颜色渲染-渲染一张DEM(数字高程模型)

通过渲染一张DEM的具体例子,了解在WebGL中颜色渲染的过程。

2019-05-01

WebGLTutorial-master.zip

WebGL简易教程的实例代码,搭配教程https://blog.csdn.net/charlee44/article/details/103443618食用。

2019-12-08

ImgViewer.zip

使用QT显示OpenCV读取的图片。OpenCV读取图片为内存Buf,传给QImage,在QT界面中显示。博文地址:https://blog.csdn.net/charlee44/article/details/104464262

2020-02-23

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

TA关注的人

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