直线检测练习:hough线变换

本文介绍了霍夫线变换在计算机视觉中的基本原理和应用,包括标准霍夫变换(SHT)、多尺度霍夫变换(MSHT)以及累计概率霍夫变换(PPHT)。OpenCV库提供了相应的API,如HoughLines和HoughLinesP,用于直线检测。通过实例展示了不同变换的使用效果,指出PPHT在处理复杂边缘时可能的优势。
摘要由CSDN通过智能技术生成

1.hough线变换概述

在计算机视觉与图像分析领域,直线(段)检测一直是热门的研究问题,作为一种底层图像特征,是检测图像高层特征或分析图像内容的基础。直线段包含更丰富的信息,如直线段角度、中心点等,当然也有很多方面的应用,比如:图像修复、消失点检测、图像匹配、遥感图像分析、三维重建和道路检测等。
本篇主要浅显介绍一下霍夫线变换,霍夫变换于1962 年由PaulHough 首次提出,后于 1972 年由 Richard Duda & Peter Hart 推广使用 ,经典霍夫变换常用来检测图像中的直线 ,当然也可以检测圆和椭圆,其原理都是:运用两个坐标空间之间的变换将在一个空间中具有相同形状的曲线或直线映射到另 一个坐标空间的一个点上形成峰值,从而把检测任意形状的问题转化为统计峰值问题 。这种方法的 一 个突出优点是分割结果的稳定性,即对数据的不完全或噪声不是非常敏感,只需边缘检测简单处理便可以进行检测。
OpenCV 中的霍夫线变换有如下三种:
· 标准霍夫变换 ( StandardHough Transform, SHT ) ,由 HoughLines函数 调用。
· 多尺度霍夫变换(Multi-ScaleHough Transform , MSHT ) ,由HoughLines函数调用 。
· 累计概率霍夫变换(ProgressiveProbabilistic Hough Transform, PPHT ),由HoughLinesP 函数调用

2.hough线变换原理

(1)一条直线在图像三维空间可由两个变量表示,有以下两种情况。如图所示:
AIt
①在直角坐标系 :可由参数斜率和截距( k , b ) 表示 :
y = kx + b   \text{y}=\text{kx}+\text{b}\, y=kx+b
②在极坐标系 :可由参数极径和极角(r,θ)表示:

y = ( − cos ⁡ θ sin ⁡ θ ) x + ( r sin ⁡ θ ) \text{y}=\left( -\frac{\cos \boldsymbol{\theta }}{\sin \boldsymbol{\theta }} \right) \boldsymbol{x}+\left( \frac{\boldsymbol{r}}{\sin \boldsymbol{\theta }} \right) y=(sinθcosθ)x+(sinθr)

可以利用下面的式子相互推导:

化简可以得到:

对于边缘检测图像的某一个点 ( x 0 , y 0 ) \left( \text{x}_0,\text{y}_0 \right) (x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值