OpenCV的霍夫变换(Hough Transform)直线检测

本文介绍了霍夫变换的基本原理,通过参数平面的直线与图像点的对应关系来检测直线。OpenCV提供了基本霍夫变换`cv::HoughLines`函数用于检测完整的直线,以及概率霍夫变换`cv::HoughLinesP`函数,该函数能检测线段,并可通过设置参数控制线段长度和连续点间隔。这两种方法在二值图像的边缘检测基础上,通过投票机制有效地找出图像中的直线和线段。
摘要由CSDN通过智能技术生成

霍夫变换(Hough Transform)的主要思想:

一条直线在平面直角坐标系(x-y)中可以用y=ax+b式表示,对于直线上一个确定的点(x0,y0),总符合y0-ax0=b,而它可以表示为参数平面坐标系(a-b)中的一条直线。因此,图像中的一个点对应参数平面的一条直线,同样,图像中的一条直线对应参数平面上的一个点。

基本Hough变换检测直线:

由于同一条直线上的不同点在参数平面中是会经过同一个点的多条线。对图像的所有点作霍夫变换,检测直线就意味着找到对应参数平面中的直线相交最多的点。对这些交点做票数累计,然后取出票数大于最小投票数的点,即为原坐标系里检测出的直线。

一般,直线的参数方程为 ρ=xcosθ+ysinθ

OpenCV中的基本霍夫变换直线检测函数 cv::HoughLines

函数输入为一幅二值图像(有很多待检测点),其中一些点排列后形成直线,通常这是一幅边缘图像,比如来自Sobel算子或Canny算子。函数的输出是cv::Vec2f的向量,每个元素都是一对代表检测到的直线的浮点数(ρ, θ)。函数的作法是先求出原图像中每点的极坐标方程,若相交于一点的极坐标曲线的个数大于最小投票数,则将该点(ρ, θ)(参数坐标系点)放入输出向量。

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值