PS:好久没更新,因为期末到了,拼命复习中。复习久了觉得枯燥,玩玩儿霍夫变换直线检测

霍夫变换的基本原理不难,即便是初中生也很容易理解(至少在直线检测上是这样子的)。

霍夫变换直线检测的基本原理:(不配图了,自己在白纸上画画,理解更深刻)

一步一步来:

1、在白纸上画出一个直角坐标系,任意给出一个点;

2、那么,对于点(x0,y0),经过这个点的直线必定满足y0=k*x0+b, 其中k是直线的斜率,b是直线的截距;

3、上式可以化成b=y0-k*x0,  可以看作是以-x0为斜率,以y0为截距,在k-b空间上的一个直线方程(k,b为变量);

4、可见,k-b空间上的一条直线, 代表了x-y空间经过特定点的所有直线,而x-y上的特定直线责备k-b空间上的特定点表示;

利用这个原理,我们可以通过一下方法检测可能出线的直线:

1、得到一副边缘图像;

2、对图像中的每一个边缘点,在k-b空间中画出一条直线;

3、在各直线的交点,我们采取“投票”(vote)的方法,即累加:n条直线的交点,改点的值为n;

4、遍历k-b空间,寻找出先局部最大值(极值)的点,这些点的坐标(k,b)就是图像中可能出线的直线的斜率和截距;

为了容易理解,这里采用了直线的斜截表达法。

事实上这种方法并不使用,因为某些直线的斜率很大的甚至不存在。

实际操作中,检测直线的霍夫变换使用含极坐标参数的直线表示型式,简称极坐标式(不是极坐标方程,因为还是在笛卡尔坐标下表示)

其中的两个参数的意义如下图:

这样,每条直线对应于theta-p空间下的一条正弦曲线,同样采用投票求极值的方法寻找曲线

霍夫变换直线检测的matlab实现:

这里涉及到三个函数:hough,houghpeaks,houghlines:

1、[H,T,R] = hough(BW,'Theta',20:0.1:75)    ; (输入二值图像BW,角度范围与步进(最大,[-90, 90)),返回 H-霍夫空间,T-theta,R-p);

2、PEAKS = houghpeaks(H,NUMPEAKS)      ;(输入霍夫空间和极值数量,返回极值的坐标)

3、LINES=houghlines(BW,T,R,Peaks)        ; (返回lines是一个包含图像中线段首末点、p、theta的结构体)

代码:

I=imread('1.jpg');

Ihsv=rgb2hsv(I);

Iv=Ihsv(:,:,3); %提取v空间

Ivl=Iv(500:end,:); %截取下半部

Iedge=edge(Ivl,'sobel'); %边沿检测

Iedge= imdilate(Iedge,ones(3));%图像膨胀%新建窗口,绘图用

figure (2)

imshow(Iedge);

hold on%左方直线检测与绘制%得到霍夫空间

[H1,T1,R1]= hough(Iedge,'Theta',20:0.1:75);%求极值点

Peaks=houghpeaks(H1,5);%得到线段信息

lines=houghlines(Iedge,T1,R1,Peaks);%绘制线段for k=1:length(lines)

xy=[lines(k).point1;lines(k).point2];

plot(xy(:,1),xy(:,2),'LineWidth',4);

end%右方直线检测与绘制[H2,T2,R2]= hough(Iedge,'Theta',-75:0.1:-20);

Peaks1=houghpeaks(H2,5);

lines1=houghlines(Iedge,T2,R2,Peaks1);for k=1:length(lines1)

xy1=[lines1(k).point1;lines1(k).point2];

plot(xy1(:,1),xy1(:,2),'LineWidth',4);

end

hold off

输入图像:

输出图像:

嘛,结果还是令人满意的嘛~

接下来要准备考试了,7月11号考完,之后想做一个手部识别,所以可能会玩玩haar特征检测器和光流法跟踪,大概就这样。

matlab寻找直线_matlab寻找直线_Matlab 霍夫变换 ( Hough Transform) 直线检测相关推荐

  1. 【视觉算法】霍夫变换(Hough Transform)

    在进入正题之前,首先思考一个问题,在下图中,我们如何从散乱的点中寻找到直线? 有多少直线?哪些点属于哪些直线? 如果是找圆形呢? 霍夫变换(Hough Transform)能很好的解决这些问题,要理解 ...

  2. 霍夫变换(hough transform)原理

    计算机视觉中经常需要识别或者定位某些几何图形,比如直线.圆.椭圆,还有其他一些图形.检测直线的霍夫变换提供了在图像中寻找直线的一种算法,是最简单的一种情形,后来发展到检测圆.椭圆.还有一般图形的霍夫变 ...

  3. java 霍夫变换_霍夫变换(Hough Transform)

    霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.最基本的霍夫变换是从黑白图像中检测直线(线段). 我们先看这样一个问题: 设已知一黑白图像上画了一条直线,要求出这 ...

  4. matlab寻找直线_Matlab 霍夫变换 ( Hough Transform) 直线检测

    PS:好久没更新,因为期末到了,拼命复习中.复习久了觉得枯燥,玩玩儿霍夫变换直线检测 霍夫变换的基本原理不难,即便是初中生也很容易理解(至少在直线检测上是这样子的). 霍夫变换直线检测的基本原理:(不 ...

  5. 深度学习和目标检测系列教程 20-300:OpenCV与图像处理:霍夫变换技术实现直线检测

    @Author:Runsen 霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,该过程在一个參数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果. ...

  6. hough变换直线检测_CV学习笔记(十五):直线检测

    在这一篇文章中我们将学习使用OpenCV中的 HoughLines 函数和 HoughLinesP 函数来检测图像中的直线. 在这个函数中,使用的是霍夫变换(Hough Transform) 这是计算 ...

  7. python 图像变化检测_Python OpenCV 霍夫(Hough Transform)直线变换检测原理,图像处理第 33 篇博客...

    Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧.本篇博客是这个系列的第 33 篇. 基础知识铺垫 霍夫变换(Hough Transform)是图像处理领域中,从图像中识别几 ...

  8. hough变换检测圆周_一文解读经典霍夫变换(Hough Transform)

    引言 本文讲述霍夫变换的一些内容,并加入一些理解性东西,参考了部分博客等相关性内容.希望能对霍夫变换有所了解,也希望看到的人如果发现错误及时帮忙纠正.博主水平有限,还望赐教. 历史和简介 历史 霍夫变 ...

  9. 霍夫变换(Hough)

    霍夫变换Hough 霍夫变换(Hough)是一个非常重要的检测间断点边界形状的方法.它通过将图像坐标空间变换到参数空间,来实现直线与曲线的拟合. 1.直线检测 1.1 直线坐标参数空间 在图像x−yx ...

  10. Hough Transform 霍夫变换检测直线

    Hough Transform 霍夫变换检测直线 从理论到代码,再从代码到理论 (1)理论之通俗理解: 1.在图像中检测直线的问题,其实质是找到构成直线的所有的像素点.那么问题就是从找到直线,变成找到 ...

最新文章

  1. 不止Markov决策过程,全景式分析强化学习研究内容
  2. CTF---Web入门第十题 Once More
  3. 信息处理进入了计算机领域,信 息 处 理 进 入 了 计 算 机 领 域 ,实 质 是 进 入 了()的 领 域 。...
  4. Android 更新项目名称
  5. spring security oauth rce (cve-2016-4977) 漏洞分析
  6. python是什么语言开发的-少儿编程有什么好处?儿童编程课程学习Python的4大原因...
  7. 面试和学习必备--Java多线程
  8. wireshark使用_第一次使用WireShark的问题
  9. 2006年中国软件收入规模前100家企业名单
  10. element手机验证格式_vue封装 element-ui form表单验证 正则匹配手机号 自定义校验表格内容...
  11. 使用jaxb根据xsd逆向生成java代码
  12. 【leetcode刷题笔记】Sqrt(x)
  13. python字典练习_python字典练习
  14. spring相关—IOC容器—使用注解配置bean
  15. webview适配(一):文件选择,相机拍照,相册选择
  16. 广西来宾中考计算机考试考什么,来宾中考信息管理系统 http://www.lbzklq.com
  17. 新旧版MATLAB中的希尔伯特-黄变换(HHT)及其边际谱的求取问题
  18. HED 和 RCF 图像边缘检测
  19. 电商交易背景知识合集第一季
  20. 4.2 英文分词及词性标注

热门文章

  1. Jieba词性对照表
  2. 统计通话次数和时间的软件_通话时间统计app下载-通话时间统计下载 2.2.2 安卓版 - 河东软件园...
  3. P2P(对等网络)、 PT 下载与 BT 下载
  4. 最优化 | 二次规划的基础知识理论 | 例题讲解
  5. 高通工具QXDM、QCAT和QPST的使用
  6. Python爬虫下载网易云音乐歌曲
  7. 记录隐藏ubuntu桌面图标
  8. TensorFlow构建模型(图片数据加载)六
  9. Go语言实战--学习笔记--runner
  10. Android QFIL 烧录