图像分割中的点、线和边缘检测
1. 点检测
点检测是图像分割中的基础操作。在图像分割中,点检测主要有两种方法。
1.1 基于最大值响应的点检测
可以通过以下代码实现:
W = [-1 -1 -1; -1 8 -1; -1 -1 -1];
g = abs(imfilter(tofloat(f), w));
T = max(g(:));
g = g >= T;
imshow(g)
此方法的原理是,选择滤波后图像 g 中的最大值作为阈值 T ,然后找出 g 中所有值大于等于 T 的点,这些点就是响应最大的点。假设这些点是嵌入在恒定或接近恒定背景中的孤立点。
1.2 基于邻域像素值差异的点检测
代码如下:
g = ordfilt2(f, m*n, ones(m, n)) - ordfilt2(f, 1, ones(m, n));
g = g >= T;
当选择 m = n = 5 且 T = max(g(:)) 时,能得到与上述方法相同的结果。这种方法比使用特定掩码更灵活,例如,若要计算邻域中最高像素值和次高像素值的差异,可将上述表达式最右边的 1 替换为 m*n - 1
超级会员免费看
订阅专栏 解锁全文
17万+

被折叠的 条评论
为什么被折叠?



