围棋棋盘标定:基于 9 星位点的透视校正方案

核心思想:围棋棋盘有 9 个固定位置的星位标记点(座子点),它们构成一个已知的 3×3 网格。检测这 9 个点即可直接求解透视变换,一步到位地映射出全部...

2026-05-11

围棋棋盘透视矫正算法:从倾斜照片到正方形俯视图

1. 问题定义 输入: 任意角度拍摄包含围棋棋盘的彩色照片(倾斜、透视畸变) 输出: 正方形俯视校正图(19×19 标准棋盘,含网格线与星位标记) 2. 算法流...

2026-05-11

围棋规则引擎:代码级逻辑描述

用途: 作为围棋打谱辅助系统对弈引擎模块的参考设计文档。 覆盖规则: 落子合法性、气与提子、劫争、终局判定(中日规则对比)。 目标语言: C++(可移...

2026-05-11

棋子检测系统设计:ROI 双阈值 + 帧差法落子识别

Phase: P1 — 棋子识别 + 局面感知 | 依赖: P0 棋盘矫正 输入: 透视矫正后的 600×600 正方形棋盘图,已知 361 个交点像素坐标 输出: 19×19 局面字符串 (B/W/.) + 落...

2026-05-11

C++ 组件化基础:模板、CRTP、Policy-Based Design、类型擦除

把设计模式做成组件,离不开四种 C++ 编译期手法。这篇文章不背书,每块都用一个你能立刻用上的例子讲清楚。

2026-05-10

C++20 Concepts:如何约束组件接口

模板的错误信息一直是 C++ 开发者的噩梦。Concepts 不仅缩短了错误信息,更改变了我们设计组件接口的方式。

2026-05-10

ESP32-CAM 工程架构详解 —— 从 OV2640 到浏览器 MJPEG 流的全链路

项目: esp32-cam | ESP-IDF: v5.5.4 | 芯片: ESP32 (Xtensa LX6 @240MHz) 固件大小: 946 KB | 编译步骤: 1063/1063 通过 目录 整体架构概览 硬件层 ESP-IDF 系统层 esp32-camera 驱动层 应用层 数据流详解 HTTP 接口说明 引脚配置 存储器...

2026-05-10

Qt6 中的 OpenGL 编程 — 从 QOpenGLWidget 开始

Qt6 把 OpenGL 拆成了独立模块,不再默认链接。从 QOpenGLWidget 的初始化到主循环的正确写法,一次讲清楚。

2026-05-10

图形学渲染管线 — 从顶点数据到屏幕像素的全过程

不要死记 API,用一条数据从 CPU 到屏幕的完整旅程,把 OpenGL 渲染管线的每一步串起来。

2026-05-10

组件契约:concept + static_assert + 编译期测试

Concept 定义接口,static_assert 守住底线,编译期测试在 CI 上拦住回归。三者组合起来,就是一个组件的自我说明文档。

2026-05-10