直线的方程可以用y=k*x+b 来表示,其中k和b是参数,分别是斜率和截距。过某一点(x0,y0)的
所有直线的参数都会满足方程y0=kx0+b。即点(x0,y0)确定了一族直线。方程y0=kx0+b在参数k--b平
面上是一条直线。这样,图像x--y平面上的一个前景像素点就对应到参数平面上的一条直线。
举个例子说明解决前面那个问题的原理。设图像上的直线是y=x, 我们先取上面的三个点:A(0,0)
, B(1,1), C(22)。可以求出,过A点的直线的参数要满足方程b=0, 过B点的直线的参数要满足方程
1=k+b, 过C点的直线的参数要满足方程2=2k+b, 这三个方程就对应着参数平面上的三条直线,而这三
条直线会相交于一点(k=1,b=0)。 同理,原图像上直线y=x上的其它点(如(3,3),(4,4)等) 对应参数
平面上的直线也会通过点(k=1,b=0)。这个性质就为解决问题提供了方法:

首先,初始化一块缓冲区,对应于参数平面,将其所有数据置为0.对于图像上每一前景点,求出参
数平面对应的直线,把这直线上的所有点的值都加1。最后,找到参数平面上最大点的位置,这个位置
就是原图像上直线的参数。
上面就是霍夫变换的基本思想。就是把图像平面上的点对应到参数平面上的线,最后通过统计特性来
解决问题。假如图像平面上有两条直线,那么最终在参数平面上就会看到两个峰值点,依此类推。

在实际应用中,y=k*x+b形式的直线方程没有办法表示x=c形式的直线(这时候,直线的斜率为无穷大)。
所以实际应用中,是采用参数方程p=x*cos(theta)+y*sin(theta)。这样,图像平面上的一个点就对应到
参数p---theta平面上的一条曲线上。其它的还是一样。

Hough变换的基本思想相关推荐

  1. 直线/曲线检测:Randon变换与Hough变换

    一. Randon 变换 Radon变换简介 Tips: Radon变换的基本原理: 一个平面内沿不同的直线(直线与原点的距离为d,方向角为alfa)对f(x,y)做线积分,得到的像F(d,alfa) ...

  2. Hough变换及MATLAB示例

    前言 在车道线检测中,最小二乘法,Hough变换是车道线模型拟合的传统方法之一,通过一系列离散的点拟合出车道直线,也就是得到基于像素平面坐标系的左车道和右车道直线方程. Hough变换 Hough变换 ...

  3. Hough变换(仅供学习使用)

    一.定义 Hough变换是一种用于在图像中检测直线.圆等形状的技术.Hough变换的基本思想是将图像空间中的点映射到参数空间中,形成一个参数空间图像,然后在参数空间中寻找明显的峰值,这些峰值对应于图像 ...

  4. hough变换是如何检测出直线和圆的

    (I)直线篇 1 直线是如何表示的? 对于平面中的一条直线,在笛卡尔坐标系中,常见的有点斜式,两点式两种表示方法.然而在hough变换中,考虑的是另外一种表示方式:使用(r,theta)来表示一条直线 ...

  5. Hough Transform 的算法思想

    1.Hough Transform 的算法思想 在直角坐标系和极坐标系中,点.线是对偶关系. 即直角坐标系中的点是极坐标系中的线,直角坐标系中的线是极坐标系中的点.反之也成立. 如下图所示,想要检测图 ...

  6. Hough变换原始形式-直线检测

    1.直角坐标系与极坐标系中的直线表示 1.1 直角坐标系与极坐标系 中的点的表示及它们之间相互关系 极坐标系(polar coordinates)是指在平面内由极点O.极轴L和极径r组成的坐标系,下图 ...

  7. hough变换连接边缘matlab,边缘检测与Hough变换实验报告 Matlab - 图文

    <边缘检测与Hough变换实验报告 Matlab - 图文>由会员分享,可在线阅读,更多相关<边缘检测与Hough变换实验报告 Matlab - 图文(5页珍藏版)>请在人人文 ...

  8. OpenCV3学习(6.2)——霍夫(Hough)变换:霍夫线变换HoughLine,霍夫圆变换HoughCircles

    霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.主要用来从图像中分离出具有某种相同特征的几何形状(如,直线,圆等).最基本的霍夫变换是从黑白图像中检测直线(线段) ...

  9. Hough变换直线检测

    作者:云外阳光 链接:https://www.zhihu.com/question/35268803/answer/82100453 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

最新文章

  1. 开源 java CMS - FreeCMS2.8 模板管理
  2. liunx 学习笔记-wzq
  3. SAP MM初阶之包含有Service item的服务采购订单
  4. 长期使用中型Access数据库的一点经验
  5. mysql 必须掌握的工具pt-query-digest安装
  6. Table 自动换行问题
  7. java date 构造_Java中Date的构造方法及大小比较
  8. Java设计模式学习总结(2)——创建型模式之工厂模式
  9. Service onStartCommand 返回值
  10. html div 监听事件无效,在AngularJS中将html替换为div后,Click事件不起作用
  11. 使用RateLimiter完成简单的大流量限流
  12. 湖仓一体数据平台架构
  13. oracle数据存入临时表,ORACLE数据库临时表总结
  14. linux中孚软件,中孚主机监控与审计系统
  15. 【通信工程】大三下课程设计-5G核心网功能设计与部署
  16. 银行卡卡号识别(照片)python
  17. 你都为美白缴过哪些智商税? | Alfred数据室
  18. SWING中模拟键盘输入例子
  19. AVI文件数据流操作
  20. PyTorch入门: Kaggle 泰坦尼克幸存者预测

热门文章

  1. 服务链路追踪(Spring Cloud Sleuth)
  2. platform总线的probe函数调用
  3. Android应用的基本组件介绍
  4. 无线路由器的WDS功能如何配置?
  5. 第 8 章:管理模式对象
  6. 3月第2周安全回顾 微软修补12个漏洞 ***盯上企业FTP
  7. centos 7.2 mysql 允许_CentOS 7.2 mysql-5.7.17 审计插件安装、开启与设定
  8. aws s3仅允许cloudfront访问_初创公司如何用AWS搭建高扩展性架构
  9. codelite 教程
  10. mysql shell 1.0.10_MySQL Shell(使用Shell命令管理MySQL)下载 v1.0.10 官方32位+64位Windows版 - 比克尔下载...