点、线、边缘的检测

点、线、边缘的检测常用空域滤波的方法进行。

$$R = w_1z_1+w_2z_2+\dots +w_9z_9=\sum_{i=1}^{9}w_iz_i$$

1. 检测孤立点

检测孤立点采用的滤波模板是

-1 -1 -1
-1  8 -1
-1 -1 -1

检测的标准是判断滤波后的绝对值是否大于某一阈值

$$|R| \ge T$$

在matlab中可以用如下方法实现:

g = abs(imfilter(f, w)) >= T;

另一种检测方法是看一个邻域内的最大值和最小值的差是否超过某个阈值。实现方法是:

g = imsubtract(ordfilt2(f, m*n, ones(m,n)), ordfilt2(f, 1, ones(m,n))) >= T;

2. 线检测

线检测的模板可以是:

-1 -1 -1
 2  2  2
-1 -1 -1

-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

如果对某一方向的线感兴趣,可以使用相应的模板做滤波后进行阈值处理。

3. 边缘检测

Hough变换

阈值处理

区域分割

分水岭算法

ch3n2k.com | Copyright (c) 2004-2020 czk.