基于Matlab的霍夫直线检测问题的解决
来源:互联网 发布:多益网络的创始人徐波 编辑:程序博客网 时间:2024/04/30 16:09
做直线检测这块的,肯定绕不开霍夫,百度上也是各种各样有关霍夫的教程详解什么的,但是个人感觉好多人都没有把霍夫吃透理清。纯粹是为了使用霍夫而强行使用罢了。对大牛们还说,可能这不算什么,但是对入门小白还说,难免会有各种各样的问题。
比如在参数选取上面的一些问题,可能导致难以让人满意的结果。比如一些语句的错误使用可能导致程序直接无法运行。
就最近在直线检测问题上遇到的一些问题,我写下这篇博客,希望可以给将来入门的萌新一点小小的帮助。
1.霍夫直线检测的参数选取问题
先贴上一段代码:
clcsrc=imread('1.jpg');figure(33),imshow(src);src=rgb2gray(src);thresh=[0.01,0.17];sigma=5; %%%%%定义高斯参数f=edge(double(src),'canny',thresh,sigma);figure(1),imshow(f,[]);title('canny 边缘检测');[H,theta,rho]=hough(f,'RhoResolution',0.1);%imshow(theta,rho,H,[],'notruesize'),axis on,axis normal%xlabel('\theta'),ylabel('rho');peak=houghpeaks(H,9);hold onlines=houghlines(f,theta,rho,peak);figure,imshow(f,[]),title('Hough Transform Detect Result'),hold onimshow(src);hold onfor k=1:length(lines) xy=[lines(k).point1;lines(k).point2]; plot(xy(:,1),xy(:,2),'LineWidth',2,'Color',[0 0 1 ]);end
这段代码,是用来检测十分简单的图片的,纯粹是我用来检测霍夫性能的代码
待检测图片:
就是简单的矩形图
刚开始检测的结果是这样的
canny边缘检测图毫无问题,但是使用霍夫检测之后就出现了巨大的问题。当时我在想可能霍夫函数的参数设置,没设置好,导致的。然后我更改了hough函数中的RhoResolution和ThetaResolution两个变量。但是显示效果还是不好。
我在这个卡了好久,一直想不通哪儿出了问题。后来甚至想着是不是hough函数使用不对。最后干脆一了百了,改了所有参数,包括canny检测函数的参数。最终真相大白!
原来是canny边缘检测函数的参数设置影响了最终的直线检测效果!
后来思索了一下,hough直线检测是建立在边缘检测的基础上的,如果你的基础边缘检测不行,直线检测肯定也不行。
这里面存在的一个大坑就是边缘检测的图线,人眼看上去没太大问题,但是对hough函数来说可能是致命的。
附上最终的检测效果图:
阅读全文
1 0
- 基于Matlab的霍夫直线检测问题的解决
- 基于Hough 变换的直线检测(Matlab实现)
- 霍夫变换直线检测的matlab实现
- MATLAB 霍夫直线检测
- Hough变换直线检测的MATLAB实现
- 基于MFC的Hough直线检测
- OpenCV基于傅里叶变换以及霍夫直线检测的旋转文本校正
- android openCV检测图像的基本特征,包括Canny边缘检测、Harris角点检测、霍夫直线检测-基于Android studio
- Matlab实现——霍夫变换直线检测
- 霍夫变换 ( Hough Transform) 直线检测(Matlab 源码)
- 霍夫变换检测直线--原理和Matlab实现
- 霍夫变换检测直线的公式推导以及基于opencv的源代码分析并实例实现
- OpenCV学习之基于Hough变换的直线检测
- 基于MATLAB边缘检测算子的实现
- 霍夫直线检测及opencv的实现分析
- [转发]霍夫变换直线检测的基本原理
- 霍夫变换的直线检测原理和注意事项
- OpenCV的霍夫变换(Hough Transform)直线检测
- LUA协同程序
- Java两个对象copy属性值
- "<br />"和"\r\n"两者的区别
- dedecms模板文件不存在,无法解析文档!的终极解决方案
- 阿里、网易、滴滴共十次前端面试碰到的问题
- 基于Matlab的霍夫直线检测问题的解决
- 温控表校准使用心得
- “玲珑杯”线上赛 Round #15 河南专场 C
- 多线程
- laravel中bcrypt和encrypt的区别
- 群体遗传学--华伦德效应(Wahlund effect)
- android安卓涵盖大多基础xml文件使用的介绍
- freopen函数用法
- Codeforces816B Karen and Coffee