霍夫变换检测直线和平面
本文介绍霍夫变换Hough Transform,并介绍其在直线检测和三维平面检测的应用。
霍夫变换
霍夫空间
我们把一条直线y=kx+q变换为:q = -xk + y, 然后绘制出关于k和q坐标系下的方程,可以得到一个点。
相应的,q = -xk + y 这条直线也可以转换为点(x, y),这里的 q, k构成的坐标系为霍夫空间Hough Space
多点共线
对于在笛卡尔坐标系中多个点共线的情况,投影到霍夫空间,变为交于同一点的直线:
这里的交点(k, q),便是这几个点共线的方程y = kx + q。
极坐标系
在极坐标系下,通过将x, y的方程替换为ρ和θ,得到交于同一点的若干条曲线。
网格化
对于离散的点,在霍夫空间无法准确地交于同一个点,这时我们需要把霍夫空间的坐标系进行网格化,再对每个网格进投票,统计经过直线(曲线)最多的网格,视为交点。这个网格的坐标系下的平均值则为拟合直线方程的参数。
霍夫变换用于点云平面检测
对于3D点云,霍夫变换可以用来检验平面。论文The 3D Hough Transform for Plane Detection in Point Clouds:A Review and a new Accumulator Design [2011] 介绍了用3D霍夫变换检测平面的研究。
我们可以把3维平面的方程转换为极坐标,构建关于ø,θ和ρ的方程:
在三维坐标系下,点到霍夫的投影可以表示为三条曲面。对于三点共面,可以通过网格化霍夫空间,求得三条曲面交汇的交点,从而得到平面的方程:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2021-07-05 Python - opencv (一) 边缘检测