概率霍夫变换(Progressive Probabilistic Hough Transform)的原理很简单,如下所述:

1.随机获取边缘图像上的前景点,映射到极坐标系画曲线;

2.当极坐标系里面有交点达到最小投票数,将该点对应x-y坐标系的直线L找出来;

3.搜索边缘图像上前景点,在直线L上的点(且点与点之间距离小于maxLineGap的)连成线段,然后这些点全部删除,并且记录该线段的参数(起始点和终止点),当然线段长度要满足最小长度;

4.重复1. 2. 3.。

In "A real-time lane marking localization, tracking and communication system":

Hough transform (HT) was proposed in [30] and is usually used to detect lines and circles; it has been used as the core method of lane marking detection in [3] and [31]. The core formula of HT is:

λ=xcos(θ)+ysin(θ)

λ is the length between the origin and the pedal of detected line and θ is the angle of its perpendicular line.

In [32], Matas et al. proposed the PPHT, which has been commonly accepted as one of the best line detection methods based on Hought transform theory. The algorithm PPHT proceeds as follows:

  1. Randomly, select a new point for voting in the accumulator array, with contributions to all available bins (as referenced in [32], bin stands for a pair of (λ, θ)). Then remove the selected pixel from the input image.

  2. Check if the highest peak (the pair of (λ, θ) with the most voting points) in the updated accumulator is greater than a pre-defined threshold th(N). If not then go to Step 1.

  3. Find all lines with the parameter (λ, θ) which was specified by the peak in Step 2. Choose the longest segment (which can be denoted by starting point Pt0 and ending point Pt1) of all lines.

  4. Remove all the points of the longest line from the input image.

  5. Remove all the points of the selected line in Step 3 (Pt0−Pt1) from the accumulator, which means those points do not attend any other voting process.

  6. If the selected segment is longer than a pre-defined minimum length, then take the segment (Pt0−Pt1) as one of the output results.

  7. Go to Step 1.

References:

[3] D.O. Cualain, C. Hughes, M. Glavin, E. Jones. Automotive standards-grade lane departure warning system. IET Intell. Transp. Syst., 6 (1) (2012), pp. 44–57

[30] P.V.C. Hough, A method and means for recognizing complex patterns, US Patent: 3,069,654 (1962).

[31] K. Zu. Realtime lane tracking of curved local road. Proceedings of the IEEE Intelligent Transportation Systems (2006), pp. 1149–1155

[32] J. Matas, C. Galambos, J. Kittler. Robust detection of lines using the progressive probabilistic hough transform. Comput. Vision Image Underst., 78 (1) (2000), pp. 119–137

概率霍夫变换(Progressive Probabilistic Hough Transform)原理详解的更多相关文章

  1. 【动画消消乐】HTML+CSS 自定义加载动画:清新折叠方块效果 063(附源码及原理详解)

    前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专 ...

  2. I2C 基础原理详解

    今天来学习下I2C通信~ I2C(Inter-Intergrated Circuit)指的是 IC(Intergrated Circuit)之间的(Inter) 通信方式.如上图所以有很多的周边设备都 ...

  3. Zigbee组网原理详解

    Zigbee组网原理详解 来源:互联网 作者:佚名2015年08月13日 15:57   [导读] 组建一个完整的zigbee网状网络包括两个步骤:网络初始化.节点加入网络.其中节点加入网络又包括两个 ...

  4. 块级格式化上下文(block formatting context)、浮动和绝对定位的工作原理详解

    CSS的可视化格式模型中具有一个非常重要地位的概念——定位方案.定位方案用以控制元素的布局,在CSS2.1中,有三种定位方案——普通流.浮动和绝对定位: 普通流:元素按照先后位置自上而下布局,inli ...

  5. SSL/TLS 原理详解

    本文大部分整理自网络,相关文章请见文后参考. SSL/TLS作为一种互联网安全加密技术,原理较为复杂,枯燥而无味,我也是试图理解之后重新整理,尽量做到层次清晰.正文开始. 1. SSL/TLS概览 1 ...

  6. 锁之“轻量级锁”原理详解(Lightweight Locking)

    大家知道,Java的多线程安全是基于Lock机制实现的,而Lock的性能往往不如人意. 原因是,monitorenter与monitorexit这两个控制多线程同步的bytecode原语,是JVM依赖 ...

  7. [转]js中几种实用的跨域方法原理详解

    转自:js中几种实用的跨域方法原理详解 - 无双 - 博客园 // // 这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同 ...

  8. 节点地址的函数list_entry()原理详解

    本节中,我们继续讲解,在linux2.4内核下,如果通过一些列函数从路径名找到目标节点. 3.3.1)接下来查看chached_lookup()的代码(namei.c) [path_walk()> ...

  9. WebActivator的实现原理详解

    WebActivator的实现原理详解 文章内容 上篇文章,我们分析如何动态注册HttpModule的实现,本篇我们来分析一下通过上篇代码原理实现的WebActivator类库,WebActivato ...

随机推荐

  1. Windows 7 Boot Updater 如何使用

    作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com 如何使用 动画如果你选择改变动画,你将不得不 ...

  2. socket 远程命令

    # -*- coding: utf-8 -*- # 斌彬电脑 from socket import * import subprocess server = socket(AF_INET, SOCK_ ...

  3. 基于Material-Design的Gank-IO客户端

    title: 基于Material Design的Gank IO客户端 date: 2017-03-13 12:58:03 tags: - Android - Material Design - Rx ...

  4. C#编程(八十二)---------- 用户自定义异常类

    用户自定义异常类 前面已经说了不少关于异常的问题了,现在来给大家说一下自定义异常时咋个回事以及咋样. 为啥会出现自定义异常类呢?用用脚趾头想想也明白,是为了定义咱们自己的异常,自定义异常类继承自App ...

  5. 1.Linux进程--进程标识号

    函数原型 pid_t fork(void); fork的奇异之处在于它被调用一次,却返回两次,它可能有三种不同的返回值: 1.在父进程中.fork返回新创建的子进程的PID 2.在子进程中,fork返 ...

  6. [转载]震惊!QWidget竟然可以嵌入到QML中,QMl窗口句柄竟然是这样获取

      背景 记得在初学qml时,就被大佬告知Qml的实现有两种方式“view+item”和“engine+widow”,那么能不能将QWidget嵌入到QML中来呢,我收到的答案是不可以,原因是QML的 ...

  7. [leetcode]Maximal Rectangle @ Python

    原题地址:https://oj.leetcode.com/problems/maximal-rectangle/ 题意:Given a 2D binary matrix filled with 0's ...

  8. [猜你喜欢]冠军“yes,boy!”分享,含竞赛源代

    [猜你喜欢]冠军“yes,boy!”分享,含竞赛源代码  DataCastle运营 发表于 2016-7-20 17:31:52      844  3  5 我是Yes,boy! ,来自东北大学计算 ...

  9. CentOS7 命令笔记

    网络 ifconfig已经过时,查看ip地址请使用ip addr或者ip link 服务 查看系统和硬件信息 cat /etc/os-release uname -r 显示正在使用的内核版本 dmid ...

  10. jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址

    jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据.