惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 聂微东
月光博客
月光博客
博客园 - 司徒正美
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
量子位
Recent Announcements
Recent Announcements
V
V2EX
P
Proofpoint News Feed
小众软件
小众软件
云风的 BLOG
云风的 BLOG
腾讯CDC
宝玉的分享
宝玉的分享
Microsoft Azure Blog
Microsoft Azure Blog
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
B
Blog
博客园_首页
GbyAI
GbyAI
博客园 - Franky

又见苍岚

COLMAP PatchMatch Stereo 算法详解 事件驱动的状态机框架:从理论到工程实践 Git 在国内网络环境下无法 Push 的排查与修复 —— 配置 Clash 代理 分段五次多项式插值原理详解 路径插值方法深度对比研究 Claude Code 使用指南 OpenClaw 记忆管理与技能创建指南 CBS(Conflict-Based Search)算法详解 A* 算法及其变种详解 OpenClaw 配置多 Agents Windows Powershell 无法加载文件,因为在此系统上禁止运行脚本问题的解决方案 MaxClaw 安装流程 大模型 AI 名词介绍 AList 网盘聚合工具简介 Protobuf 简介与测试 Claude Code 简介以及 GLM 4.7 模型接入 Github 歌词下载工具 163MusicLyrics Python __getattr__ 懒加载 Python TypedDict 机器人仿真平台 Gazebo 安装记录 机器人仿真平台 Gazebo 简介 多机器人路径规划问题(Multi-Agent Path Finding, MAPF)简介 Python exifread 读取修改过的 jpeg 信息错误问题修复 3D 坐标系变换的理解 3D 旋转矩阵基本概念 MongoDB Compass 介绍 Python 环境管理工具 uv Flutter 开发指南 Snipaste 安装下载与黑屏问题解决方案 全局路径规划算法记录
亚像素角点检测
Yiwei Zhang · 2023-04-10 · via 又见苍岚

前面已经提及 goodFeaturesToTrack() 提取到的角点 只能达到像素级别,获取的角点坐标是整数,但是通常情况下,角点的真实位置并不一定在整数像素位置,因此为了获取更为精确的角点位置坐标,需要角点坐标达到亚像素(subPixel)精度。这时,我们则需要使用cv::cornerSubPix()对检测到的角点作进一步的优化计算,可使角点的精度达到亚像素级别。

在亚像素级精度的角点检测算法中,一种方法是从亚像素角点到周围像素点的矢量应垂直于图像的灰度梯度这个观察事实得到的,通过最小化误差函数的迭代方法来获得亚像素级精度的坐标值。

$$ \begin{array}{c} I_{x}(p)\left(x_{q}-x_{p}\right)+I_{y}(p)\left(y_{q}-y_{p}\right)=0 \\ I_{x}(p) x_{q}+I_{y}(p) y_{q}=I_{x}(p) x_{p}+I_{y}(p) y_{p} \end{array} $$

$$ \left(\begin{array}{cc}I_{x}\left(p_{1}\right) & I_{y}\left(p_{1}\right) \\ \vdots & \vdots \\ I_{x}\left(p_{n}\right) & I_{y}\left(p_{n}\right)\end{array}\right)\left(\begin{array}{c}x_{q} \\ y_{q}\end{array}\right)=\left(\begin{array}{c}I_{x}\left(p_{1}\right) x_{p_{1}}+I_{y}\left(p_{1}\right) y_{p_{1}} \\ \vdots \\ I_{x}\left(p_{n}\right) x_{p_{n}}+I_{y}\left(p_{n}\right) y_{p_{n}}\end{array}\right) $$

$$ A=\left(\begin{array}{cc}I_{x}\left(p_{1}\right) & I_{y}\left(p_{1}\right) \\ \vdots & \vdots \\ I_{x}\left(p_{n}\right) & I_{y}\left(p_{n}\right)\end{array}\right), b=\left(\begin{array}{c}I_{x}\left(p_{1}\right) x_{p_{1}}+I_{y}\left(p_{1}\right) y_{p_{1}} \\ \vdots \\ I_{x}\left(p_{n}\right) x_{p_{n}}+I_{y}\left(p_{n}\right) y_{p_{n}}\end{array}\right) $$ $$ \begin{array}{c} A^{T} A\left(\begin{array}{l}x_{q} \\ y_{q}\end{array}\right)=A^{T} b \\ A^{T} A=\left(\begin{array}{cc}\sum I_{x}^{2} & \sum I_{x} I_{y} \\ \sum I_{x} I_{y} & \sum I_{y}^{2}\end{array}\right) \\ A^{T} b=\left(\begin{array}{l}\sum I_{x}^{2} x+\sum I_{x} I_{y} y \\ \sum I_{x} I_{y} x+\sum I_{y}^{2} y\end{array}\right) \\ \left(\begin{array}{l}x_{q} \\ y_{q}\end{array}\right)=\left(A^{T} A\right)^{-1} A^{T} b \end{array} $$

然后以新的 $ \left(x_{q}, y_{q}\right) $ 为初始角点,重新执行以上优化过程,反复迭代,直至 $ \left(x_{q}, y_{q}\right) $ 收敛。

1
[[37.20782470703125, 28.19313621520996], [61.632537841796875, 25.13271713256836], [88.52682495117188, 22.974666595458984], [116.57200622558594, 22.350011825561523], [144.58685302734375, 22.965282440185547], [171.49815368652344, 25.12959861755371], [196.05784606933594, 28.172744750976562], [33.98270034790039, 53.4093017578125], [59.12421417236328, 50.916385650634766], [87.07998657226562, 49.2585563659668], [116.57009887695312, 48.41100311279297], [146.17893981933594, 49.26211166381836], [174.11178588867188, 50.913177490234375], [199.19203186035156, 53.42321014404297], [31.714290618896484, 81.21449279785156], [57.28245162963867, 79.64262390136719], [85.70196533203125, 78.4729995727539], [116.56983947753906, 78.20845031738281], [147.414794921875, 78.47453308105469], [175.7760772705078, 79.6445083618164], [201.4080810546875, 81.2107925415039], [31.063425064086914, 110.45411682128906], [56.46329116821289, 110.45072174072266], [85.46632385253906, 110.4486312866211], [116.5677490234375, 110.44801330566406], [147.5690155029297, 110.44960021972656], [176.6145477294922, 110.4505844116211], [202.2876739501953, 110.44986724853516], [31.70306396484375, 139.6763916015625], [57.28034973144531, 141.36480712890625], [85.69633483886719, 142.5038299560547], [116.56790924072266, 142.6646270751953], [147.42013549804688, 142.50144958496094], [175.77560424804688, 141.36170959472656], [201.41563415527344, 139.68089294433594], [33.96387481689453, 167.4934844970703], [59.08919906616211, 169.99136352539062], [87.06123352050781, 171.72630310058594], [116.5658187866211, 172.5388946533203], [146.1722412109375, 171.72296142578125], [174.13735961914062, 169.99850463867188], [199.19720458984375, 167.4800262451172], [37.18704605102539, 192.6940460205078], [61.63749313354492, 195.68472290039062], [88.49982452392578, 197.91934204101562], [116.56771850585938, 198.51622009277344], [144.60362243652344, 197.91807556152344], [171.47967529296875, 195.6854705810547], [196.0402069091797, 192.72105407714844]]