霍夫变换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢ 直角坐标系一条直线上的N个点对应于极坐标 系中共点的N条曲线。
▪ 作业: 1 Hough变换如何检测圆? 2 实现Hough直线检测。
谢谢大家!
(1,1) 0
1
1.4
1
(2,1) 0.7
2
2.1
1
(1,3) -1.4
1
2.8
3
(2,3) -0.7
2
3.5
3
(4,3) 0.7
4
4.9
3
(3,4) -0.7
3
4.9
4
▪ 3 统计(r, )出现的次数。 ▪ 最大次数3出现 (r, ) (2, 0o)和(r, ) (3, 90o)
▪ 则相对应的图像空间中的线分别为:
r x1 cos y1 sin
r x2 cos y2 sin
Using Polar Coordinates
对于垂线,用极坐标表示有 x r cos 0 r sin 0 xr
xr
r
Using Polar Coordinates
y
(x1, y1)
r
(x2 , y2 )
r
r •
r x1 cos y1 sin
▪ 霍夫变换用来检测图像中的直线。
y
xຫໍສະໝຸດ Baidu
Using orthogonal coordinate
y
b
b0
x
image space
m0
m
Hough space
图像空间中的一条线对应Hough空间中的一个点。
Using orthogonal coordinate
➢ 图像空间中的一个点(x0, y0)能映射为Hough空 间中的什么?
2 x cos 0 y sin 0 即 x 2

3 x cos90 y sin 90 即 y 3
y
4
3
2
1
0 01 2 3 4
x
霍夫变换检测到的直线
总结
▪ 根据直角坐标系和极坐标系变换域之间的 关系,总结霍夫变换具有如下主要性质:
➢ 直角坐标系中的一点对应于极坐标中的一条正 弦曲线
➢ 变换域极坐标系中一点对应于直角坐标系中的 一条直线
Using orthogonal coordinate
y
b
y0
x0
x
image space
m
Hough space
b = -x0m + y0,这是Hough空间中的一条线
Using orthogonal coordinate
▪ 在hough空间中,过点(x0,y0)和点(x1,y1)的直 线如何表示?
主要内容
▪ Finding lines in an image(图像直线检测)
➢ Using orthogonal coordinate(使用直角坐 标系)
➢ Using Polar Coordinates(使用极坐标)
▪ 给定一幅图像(一般为二值图像)中的点 集合,如何检测直线?
▪ 一种解决方法:任选一对儿点,决定一条 线,然后测试所有其他点是否接近这条线, 从而得出接近这条特殊线的所有点的子集。 该方法比较复杂。
Using orthogonal coordinate
(x1, y1) (x0, y0)

b = –x1m+ y1
image space
Hough space
Hough空间中两条线的交点用来表示过点(x0,y0)和点 (x1,y1)的直线
Using orthogonal coordinate
y
(3,2) (1,1) (2,1) (4,1)
(1,0)
Image Space
x
yi mxi b b xim yi
(1,0) b m (1,1) b m 1
(2,1) b 2m 1 (4,1) b 4m 1
(3,2) b 3m 2
Using orthogonal coordinate
A(0,1)即m=0,
b=1即图像空间中b
斜率为0,截距为 1的直线
▪ 在Hough空间中找某些点,通 过这些点的线数最多。如左图 所示的A点和B点,分别有三条
•A(0,1)
线通过这两点。
B(1,-1)即m=1, b=-1即图像空间 中斜率为1,截距 为-1的直线
m
• B(1,1)
Hough Space
y
(3,2) (1,1) (2,1) (4,1)
弦曲线数的问题。
如何检测参数空 间中这样的点?
例子
y
4
3
2
1
0 01 2 3 4
x
Image Space
步骤:
1.离散化θ。
θ=-45°,0 ° ,45 ° ,90 °
2.按点的坐标(x,y)和每个 (x,y) -45° 0° 45° 90°
角度θ求r
(2,0) 1.4
2
1.4
0
r xcos ysin
(1,0)
Image Space
x
▪ 问题:Hough变换的 这种实现方式 (y=mx+b)不能表示 垂直线,因为垂直线 的斜率为无穷大。
m b?
能否用别的直线 的参数化方式呢?
哈!有了! 极坐标方式
Using Polar Coordinates
r xcos ysin
(x1, y1) ( p, q)
x
r x2 cos y2 sin
▪ 这样经过Hough变换,图像空间中的每个点 (x,y)就被映
射为一个(r,θ)空间中的正弦曲线。
▪ 而图像空间中共线的点所对应的(r,θ)空间中正弦曲线相
交于一点(r’,θ’) 。
问题转换
▪ 把在图像空间中检测直线的问题转化为在
极坐标参数空间中找通过点(r,θ)的最多正
r
(x2 , y2 )
( p, q) (r cos, r sin )
垂线的斜率为tan sin / cos
原直线的斜率为-
1
tan
cos sin
(1)
设直线上的任意点为(x, y), 则斜率为:
y p y r sin (2) x q x r cos
根据(1)(2)可得:
r xcos ysin
相关文档
最新文档