<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on Logic&#39;s Lab</title>
    <link>https://logmagic.top/posts/</link>
    <description>Recent content in Posts on Logic&#39;s Lab</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <lastBuildDate>Tue, 12 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://logmagic.top/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>棋子检测方案升级：YOLO 目标检测替代传统 ROI 阈值</title>
      <link>https://logmagic.top/posts/yolo-stone-detection/</link>
      <pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/yolo-stone-detection/</guid>
      <description>Phase: P1 升级 — 棋子识别方案演进 | 依赖: P0 棋盘矫正 目标: 用 YOLO 深度学习模型替代 ROI 双阈值方案，提升棋子检测准确率和光照鲁棒性。 0. 升级背景 当前的 ROI 双阈值</description>
    </item>
    
    <item>
      <title>C&#43;&#43; 跨线程数据同步方法完全指南</title>
      <link>https://logmagic.top/posts/cpp-thread-sync/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/cpp-thread-sync/</guid>
      <description>多线程编程最难的从来不是创建线程——std::thread t(foo) 谁都会写。真正让人半夜抓头发的是：两个线程同时碰到同一块数据时，怎么让它们不打架</description>
    </item>
    
    <item>
      <title>Qt6 安卓开发环境部署完全指南</title>
      <link>https://logmagic.top/posts/qt6-android-setup/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/qt6-android-setup/</guid>
      <description>从零到 APK：在 Ubuntu 20.04 上搭建 Qt6 Android 交叉编译环境，覆盖 JDK、Android SDK/NDK、Qt6 for Android 安装，以及 CMake 配置、交叉编译、APK 打包全流程</description>
    </item>
    
    <item>
      <title>SGF 棋谱：格式解析与 C&#43;&#43; 读写实现</title>
      <link>https://logmagic.top/posts/sgf-format/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/sgf-format/</guid>
      <description>SGF（Smart Game Format）是围棋棋谱的通用交换格式，所有主流围棋软件和 AI 都认它。这篇文章把 SGF 的树形结构、核心属性、解析策略讲清楚，并</description>
    </item>
    
    <item>
      <title>三点星位透视矫正：最少点击量的数学最优解</title>
      <link>https://logmagic.top/posts/three-star-rectify/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/three-star-rectify/</guid>
      <description>上篇文章提出了 2 点斜对角方案，用中点凑第三点来做仿射预估。但这篇文章要指出：这个方案存在一个无法修复的数学缺陷——三个点共线导致仿射矩阵退化</description>
    </item>
    
    <item>
      <title>两点星位透视矫正：用最少标记完成棋盘校正</title>
      <link>https://logmagic.top/posts/two-star-rectify/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/two-star-rectify/</guid>
      <description>核心问题：9 星位标记虽然精度最高，但用户操作繁琐。能否只用 2 个斜对角星位完成矫正，同时保持可接受的精度？答案是：可以。通过仿射预估 → 引导搜索</description>
    </item>
    
    <item>
      <title>四点角星位透视矫正：一键直达全单应</title>
      <link>https://logmagic.top/posts/four-star-rectify/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/four-star-rectify/</guid>
      <description>三点三角方案有一个痛点：点完 3 次后，可能停留在仿射阶段，透视校正要碰运气（guided search 能不能搜到额外星位）。四点角方案用 4 个角星位，多 1 次</description>
    </item>
    
    <item>
      <title>围棋打谱辅助系统：4&#43;1 架构视图与功能设计</title>
      <link>https://logmagic.top/posts/go-board-architecture/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/go-board-architecture/</guid>
      <description>本文从架构师视角，用 4+1 视图完整描述围棋打谱辅助系统的顶层设计。核心决策：引入命令模式解耦输入源（人类 / 摄像头 / AI / SGF），统一 GoBoard 不可变状态</description>
    </item>
    
    <item>
      <title>围棋打谱辅助系统：4&#43;1 架构设计 V2</title>
      <link>https://logmagic.top/posts/go-board-architecture-v2/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/go-board-architecture-v2/</guid>
      <description>智能围棋盘 —— 系统架构设计文档 版本: v2.0 | 架构师: Magic_GT | 修订: Magic_HK | 方法论: 4+1 View Model (Kruchten) 设计目标: 构建一个高内聚、低耦合、可扩展的围棋系统，支持：命令</description>
    </item>
    
    <item>
      <title>围棋打谱辅助系统：4&#43;1 架构设计 V3</title>
      <link>https://logmagic.top/posts/go-board-architecture-v3/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/go-board-architecture-v3/</guid>
      <description>智能围棋盘 —— 系统架构设计文档 版本: v3.0 | 架构师: Magic_GT | 修订: Magic_HK | 方法论: 4+1 View Model (Kruchten) 设计目标: 构建一个高内聚、低耦合、可扩展的围棋系统，支持：命令</description>
    </item>
    
    <item>
      <title>围棋棋盘标定：基于 9 星位点的透视校正方案</title>
      <link>https://logmagic.top/posts/go-board-calibration/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/go-board-calibration/</guid>
      <description>核心思想：围棋棋盘有 9 个固定位置的星位标记点（座子点），它们构成一个已知的 3×3 网格。检测这 9 个点即可直接求解透视变换，一步到位地映射出全部</description>
    </item>
    
    <item>
      <title>围棋棋盘透视矫正算法：从倾斜照片到正方形俯视图</title>
      <link>https://logmagic.top/posts/go-rectify-algorithm/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/go-rectify-algorithm/</guid>
      <description>1. 问题定义 输入: 任意角度拍摄包含围棋棋盘的彩色照片（倾斜、透视畸变） 输出: 正方形俯视校正图（19×19 标准棋盘，含网格线与星位标记） 2. 算法流</description>
    </item>
    
    <item>
      <title>围棋规则引擎：代码级逻辑描述</title>
      <link>https://logmagic.top/posts/go-rules-engine/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/go-rules-engine/</guid>
      <description>用途: 作为围棋打谱辅助系统对弈引擎模块的参考设计文档。 覆盖规则: 落子合法性、气与提子、劫争、终局判定（中日规则对比）。 目标语言: C++（可移</description>
    </item>
    
    <item>
      <title>棋子检测系统设计：ROI 双阈值 &#43; 帧差法落子识别</title>
      <link>https://logmagic.top/posts/stone-detection-design/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/stone-detection-design/</guid>
      <description>Phase: P1 — 棋子识别 + 局面感知 | 依赖: P0 棋盘矫正 输入: 透视矫正后的 600×600 正方形棋盘图，已知 361 个交点像素坐标 输出: 19×19 局面字符串 (B/W/.) + 落</description>
    </item>
    
    <item>
      <title>C&#43;&#43; 组件化基础：模板、CRTP、Policy-Based Design、类型擦除</title>
      <link>https://logmagic.top/posts/cpp-component-basics/</link>
      <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/cpp-component-basics/</guid>
      <description>四块 C&#43;&#43; 组件化基石，从原理到实战</description>
    </item>
    
    <item>
      <title>C&#43;&#43;20 Concepts：如何约束组件接口</title>
      <link>https://logmagic.top/posts/cpp20-concepts-guide/</link>
      <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/cpp20-concepts-guide/</guid>
      <description>告别 300 行模板编译错误，Concepts 让接口清晰如文档</description>
    </item>
    
    <item>
      <title>ESP32-CAM 工程架构详解 —— 从 OV2640 到浏览器 MJPEG 流的全链路</title>
      <link>https://logmagic.top/posts/esp32-cam-architecture/</link>
      <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/esp32-cam-architecture/</guid>
      <description>项目: esp32-cam | ESP-IDF: v5.5.4 | 芯片: ESP32 (Xtensa LX6 @240MHz) 固件大小: 946 KB | 编译步骤: 1063/1063 通过 目录 整体架构概览 硬件层 ESP-IDF 系统层 esp32-camera 驱动层 应用层 数据流详解 HTTP 接口说明 引脚配置 存储器</description>
    </item>
    
    <item>
      <title>Qt6 中的 OpenGL 编程 — 从 QOpenGLWidget 开始</title>
      <link>https://logmagic.top/posts/qt6-opengl-programming/</link>
      <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/qt6-opengl-programming/</guid>
      <description>Qt6 的 OpenGL 模块和 Qt5 有微妙差别，这篇文章帮你避开最常见的坑</description>
    </item>
    
    <item>
      <title>图形学渲染管线 — 从顶点数据到屏幕像素的全过程</title>
      <link>https://logmagic.top/posts/graphics-pipeline-explained/</link>
      <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/graphics-pipeline-explained/</guid>
      <description>VBO、VAO、EBO、顶点着色器、光栅化、片段着色器 — 一条数据怎么变成屏幕上的一个点</description>
    </item>
    
    <item>
      <title>组件契约：concept &#43; static_assert &#43; 编译期测试</title>
      <link>https://logmagic.top/posts/component-contracts/</link>
      <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/component-contracts/</guid>
      <description>三层防御体系，让你的组件「用错就编译不过」而不是「跑了才崩」</description>
    </item>
    
    <item>
      <title>编译期 vs 运行期：何时用哪种</title>
      <link>https://logmagic.top/posts/compile-time-vs-runtime/</link>
      <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/compile-time-vs-runtime/</guid>
      <description>编译期派发和运行期派发不是对立面，是工具箱里的两把扳手</description>
    </item>
    
    <item>
      <title>QStyle 内核解剖：从像素到框架的深度之旅</title>
      <link>https://logmagic.top/posts/qstyle-internals/</link>
      <pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/qstyle-internals/</guid>
      <description>为什么你应该关心 QStyle 的内部机制 大多数 Qt 开发者对 QStyle 的认知停留在 QApplication::setStyle(&amp;quot;Fusion&amp;quot;) 或者换个主题色。但如果你正在做以下任何一件事，理解 QStyle 内核就不是&amp;quot;加分项</description>
    </item>
    
    <item>
      <title>QStyle 枚举值完全参考手册：PixelMetric、StyleHint 与全部绘制元素</title>
      <link>https://logmagic.top/posts/qstyle-enums-reference/</link>
      <pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/qstyle-enums-reference/</guid>
      <description>前言 上一篇文章我们剖析了 QStyle 的内核架构。这篇文章是它的「字典」——把 QStyle 中定义的每一个枚举值列出来，给出中文说明、实际使用场景和代码示例。你可以</description>
    </item>
    
    <item>
      <title>Qt Style Sheets 与 QStyle：两种外观系统的关系、冲突与共存之道</title>
      <link>https://logmagic.top/posts/qss-vs-qstyle/</link>
      <pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/qss-vs-qstyle/</guid>
      <description>为什么你需要搞懂这两者的关系 几乎所有 Qt 开发者都经历过这个困惑时刻： &amp;ldquo;我用 setStyleSheet 给按钮改了个颜色，为什么之前自定义 QStyle 的圆角效果全没了？</description>
    </item>
    
    <item>
      <title>Qt 渲染管线底层剖析：QPainter vs OpenGL vs QML 场景图</title>
      <link>https://logmagic.top/posts/qt-rendering-pipeline/</link>
      <pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://logmagic.top/posts/qt-rendering-pipeline/</guid>
      <description>前言 上一篇文章讲到 QSS 在每次重绘时都要走 CSS 解析和盒模型计算，而 QStyle 直接用 C++ 计算。这只是冰山一角——Qt 的渲染管线远比&amp;quot;画出来&amp;quot</description>
    </item>
    
  </channel>
</rss>
