CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  图形图像/机器视觉

hough检测直线的算法和思路是怎样的?

楼主shanti(鸭鸭)2003-08-04 11:46:27 在 专题开发/技术/项目 / 图形图像/机器视觉 提问

有没有人有过比较好的方法? 问题点数:50、回复次数:4Top

1 楼jackiesun(jackiesun)回复于 2003-08-04 12:15:09 得分 5

去看看《vc++数字图像处理》,里面讲的很清楚。Top

2 楼HUNTON(追求完美)回复于 2003-08-04 12:59:16 得分 40

由于我们平常直线用的k,b表示法有一些直线不能表示,照成很大的麻烦。它里面的直线表示和平常的不一样,用的也是两个参数,一个是原点到直线的距离,还有一个是x轴正半轴逆时针到原点到直线的垂线段的角。如图:  
        |   \  
        |       \  
        |           \  
        |             /\  
        |     d   /         \  
        |     /                 \    
        |/   A                     \  
        --------------------  
  这样直线上的点就可以表示为:   d   =   x   *   cosA   +   y   *   sinA  
  hough检测直线的算法是这样的,先建一个二维整型数组Arr[m][n],所有元素初始化为0;然后根据已知的边界点一个一个搜索,比如搜索到点(x0,y0),则把叫A从0到2PI变化(步长自己定),变化到A0,根据公式d   =   x0   *   cosA0   +   y0   *   sinA0,计算出d,然后在数组Arr[A0][d]的位置值加1。当所有的边界点都搜索完时,数组Arr[m][n]中值最大的元素的数组下标就是我们检测图中的最长的直线了。这条直线的A,d就是数组两个相应的下标。  
  这样的全图搜索算法计算量大得惊人,当然在实际的运用中会有简化的算法,比如减小搜索范围等。特别在已知直线大概的A,d时,就可以只在估计值附近一个很小的范围内搜索,这时步长也可以减小,精度提高。Top

3 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2003-08-04 12:59:49 得分 5

www-scf.usc.edu/~flv/ipbook/chap07.htm   里面有代码  
  www.colibri.com.cn/linedetection.pdf     关于直线检测的比较详细的信息Top

4 楼shanti(鸭鸭)回复于 2003-08-04 13:44:36 得分 0

我自己写的代码误差很大,可以说根本检测不到理想的直线。还有,为什么要将最大值附近清零,要是我需要检测的不同直线的角度和位置都很接近的话,这样做不就丢失信息了吗?Top

相关问题

  • 求画直线的算法
  • 熟悉直线算法的人请进!
  • 用c实现直线剪裁算法
  • 求GDI直线反走样算法!
  • 边缘检测算法求救
  • 50分求角点检测算法
  • 很菜的问题,关于画直线的算法
  • 请求直线的算法,但是要带上宽度参数
  • 请教求直线与空间三角行交点的算法
  • 100分求一算法,点到直线的距离(用矢量).

关键词

  • 算法
  • 检测
  • 直线
  • 数组
  • 搜索
  • arr
  • 表示

得分解答快速导航

  • 帖主:shanti
  • jackiesun
  • HUNTON
  • happy__888

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo