10.2点,线和边缘检测
当横穿一个剖面时,二阶导数产生细边缘,能增强细节,对于斜坡产生双边缘响应,能区分过渡类型;一阶导数产生粗边缘,对噪声相对不敏感。
孤立点的检测:拉普拉斯算子:g(x,y)=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)
线的检测:建立模板响应不同方向的线
梯度:[gx,gy]
梯度的大小,也简称为梯度,为sqrt(gx^2+gy^2)
梯度的方向为arctan[gy/gx]
梯度算子:
罗伯特梯度算子为gx=(z9-z5),gy=(z8-z6)
Prewitt算子为gx=(z7+z8+z9)-(z1+z2+z3),gy=(z3+z6+z9)-(z1+z4+z7)
Sobel算子为gx=(z7+2z8+z9)-(z1+2z2+z3),gy=(z3+2z6+z9)-(z1+2z4+z7),相对Prewitt算子可以平滑图像,抑制噪声
一般计算时,为了减少计算量,近似M(x,y)=|gx|+|gy|
可以修改以上两种3*3模板来响应对角线方向
梯度的处理也可以和阈值相结合
10.2.6更先进的边缘检测技术/10.2.7边缘连接和边界检测有点难度,不过好像还挺重要,之后再看
10.3阈值处理
当图像受噪声或者光照作用,很难直接找到用于分割的阈值
阈值处理可视为一个统计决策问题,Otsu方法能使类间方差最大化
书上详细地推导了类间方差的计算公式(p481)
有了这个公式之后,枚举分割的像素位置,找使得方差最大的像素就可以了(不过既然有一定的单调性,也许可以用三分加速?)
若用图像平滑改善全局阈值处理,结果会很棒,但边界误差会增大
对于有噪声的太小的区域,无论是否平滑,Otsu方法的表现都不好,这时可以用边缘改进
边缘改进的主要思想是利用边缘附近的像素,用这些像素计算出阈值来进行阈值处理
可变阈值处理的方法有图像分块,基于局部图像特性和使用移动平均
10.4基于区域的分割
可以选取种子点,不断合并种子点周围的相近点的方法来区域生长
可以将不满足某条件(如方差过大,均值过小等)区域不断四分,再合并
10.5用形态学分水岭的分割
主要应用之一是从背景中提取近乎一致的物体
把灰度图想象成一个地形图,不断往里面加水来提高水位,当两各盆地要联通时,可能需要通过寻找互相膨胀的点来构筑水坝
这样做可能会导致分水线过多,这可以通过将附加知识应用于分割过程,预处理地解决
具体是指寻找与感兴趣的物体相联系的内部标记(规则见p501),以这些内部标记作为区域最小值计算分水岭,将分水线作为与背景相联系的外部标记,然后使用某种分割算法即可,也可以对每个区域再进行分水岭分割算法
10.6分割中运动的应用
空间域上的基本方法是通过阈值来区分,但这会使得噪声也被考虑,可以通过四联通或八联通区域中的计数来进一步区分,不过这又会导致忽略掉小的或者慢速运动的物体
累积差值有三种方法,绝对ADI,正ADI和负ADI
10.6.2频率域技术有点超出能力范围(其实仔细看应该也能看懂不过没必要了),以后再看