|
大小: 1333
备注:
|
大小: 1818
备注:
|
| 删除的内容标记成这样。 | 加入的内容标记成这样。 |
| 行号 51: | 行号 51: |
| {{{ g = edge(f, 'sobel', T, dir) }}} f是输入图像,T是一个阈值,dir是方向('horizontol'或者'vertical'或者'both') Prewitt:{{{ g = edge(f, 'prewitt', T, dir) }}} Roberts:{{{ g = edge(f, 'roberts', T, dir) }}} Laplacian of Gaussian: {{{ g = edge(f, 'log', T, sigma) }}}sigma为标准差,默认是2。 检测零交叉: {{{ g = edge(f, 'zerocross', T, H) }}}H指定卷积的模板。 Canny: {{{ g = edge(f, 'canny', T, sigma) }}} |
点、线、边缘的检测
点、线、边缘的检测常用空域滤波的方法进行。

1. 检测孤立点
检测孤立点采用的滤波模板是
-1 -1 -1 -1 8 -1 -1 -1 -1
检测的标准是判断滤波后的绝对值是否大于某一阈值

在matlab中可以用如下方法实现:
g = abs(imfilter(f, w)) >= T;
另一种检测方法是看一个邻域内的最大值和最小值的差是否超过某个阈值。实现方法是:
g = imsubtract(ordfilt2(f, m*n, ones(m,n)), ordfilt2(f, 1, ones(m,n))) >= T;
2. 线检测
线检测的模板可以是:
如果对某一方向的线感兴趣,可以使用相应的模板做滤波后进行阈值处理。
3. 边缘检测
边缘所满足的条件:
- 像素值的一阶导数的绝对值大于指定阈值
- 像素值的二阶导数有零交叉。
Sobel:
![$$g = \sqrt{ [(z_7+2z_8+z_9) - (z_1 + 2z_2 + z_3)]^2 + [(z_3+2z_6+z_9)-(z_1+2z_4+z_7))]^2 }$$ $$g = \sqrt{ [(z_7+2z_8+z_9) - (z_1 + 2z_2 + z_3)]^2 + [(z_3+2z_6+z_9)-(z_1+2z_4+z_7))]^2 }$$](/%E5%9B%BE%E5%83%8F%E5%A6%82%E4%BD%95%E5%88%86%E5%89%B2?action=AttachFile&do=get&target=latex_819050c07ff20089de1f263893d62a0435beb5cf_p1.png)
g = edge(f, 'sobel', T, dir)
f是输入图像,T是一个阈值,dir是方向('horizontol'或者'vertical'或者'both')
Prewitt:
g = edge(f, 'prewitt', T, dir)
Roberts:
g = edge(f, 'roberts', T, dir)
Laplacian of Gaussian:
g = edge(f, 'log', T, sigma)
sigma为标准差,默认是2。
检测零交叉:
g = edge(f, 'zerocross', T, H)
H指定卷积的模板。
Canny:
g = edge(f, 'canny', T, sigma)
Hough变换
阈值处理
区域分割