|
于2008-06-10 14:26:05修订的的版本7
大小: 1104
备注:
|
于2008-06-10 14:49:45修订的的版本10
大小: 1333
备注:
|
| 删除的内容标记成这样。 | 加入的内容标记成这样。 |
| 行号 28: | 行号 28: |
| {{attachment:figure1002.png}} |
|
| 行号 30: | 行号 32: |
| {{{ -1 -1 -1 2 2 2 -1 -1 -1 |
{{attachment:figure1001.png}} 如果对某一方向的线感兴趣,可以使用相应的模板做滤波后进行阈值处理。 {{attachment:figure1003.png}} === 边缘检测 === 边缘所满足的条件: * 像素值的一阶导数的绝对值大于指定阈值 * 像素值的二阶导数有零交叉。 {{attachment:figure1004.png}} Sobel:{{{#!latex $$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 }$$ |
| 行号 36: | 行号 51: |
| {{{ -1 -1 2 -1 2 -1 2 -1 -1 }}} {{{ -1 2 -1 -1 2 -1 -1 2 -1 }}} {{{ 2 -1 -1 -1 2 -1 -1 -1 2 }}} 如果对某一方向的线感兴趣,可以使用相应的模板做滤波后进行阈值处理。 === 边缘检测 === |
点、线、边缘的检测
点、线、边缘的检测常用空域滤波的方法进行。

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)
Hough变换
阈值处理
区域分割