Opencv-003 霍夫直线检测

本文介绍了霍夫变换的基本原理及其在图像处理中的应用。霍夫变换是一种用于检测图像中特定形状的技术,最初由Paul Hough提出并由Richard Duda和Peter Hart推广。文中详细解释了如何使用OpenCV库中的HoughLinesP函数来检测图像中的直线,并提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。霍夫变换于1962年由Paul Hough 首次提出[53],后于1972年由Richard Duda和Peter Hart推广使用[54],经典霍夫变换用来检测图像中的直线,后来霍夫变换扩展到任意形状物体的识别,多为圆和椭圆.

使用openCV API实现如下:

HoughLines()    最终输出极坐标,不常使用

HoughLinesP()    常用,输出的是直线上的两个点

cv::HoughLinesP()

minLineLenth = 0;    //最小直线长度

maxLineGap = 0;    //两直线间的最大间隔

代码:

Canny(src, src_gray, 100, 200);    //先边缘检测,上下阈值200,100

Vector<Vec4f> Plines;              //用于放直线的向量

HoughLinesP(src_gray, plines, 1, CV_PI / 180, 0, 10, 0);    //若有斜线不连续,则调整这个值

Scalar color = Scalar(0, 0, 255);                //设置颜色

for(size_t i = 0; i <Plines.size(); i ++)        //划线

{

    Vec4f hline = plines[i];

    line(dst, Point(hline[0], hline[1]), Point(hline[2], hline[3]), color, 3, LINE_AA)

}

imshow("img", dst)


参考:

霍夫直线基础(python):http://m.blog.youkuaiyun.com/oQiCheng1234567/article/details/73055532

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值