1、图形图像处理,信息与计算科学系 张宝雷,9.1 论述,图9-1 图像分割在整个图像处理过程中的作用,9.3 边缘检测,9.3.1 边缘检测算子 9.3.2 边缘检测算子的MATLAB 实现,1基于一阶导数的边缘检测,常用的边缘检测算子Roberts算子Sobel算子Prewitt算子LOG算子Canny算子由于图像由离散的像素点组成,这些算子将用差分近似偏导数。,边缘检测,(1)Roberts交叉算子,(2)Sobel算子,(3)Prewitt算子,算子,9.3.2 边缘检测算子的MATLAB实现,1edge函数,edge函数调用格式如下: g, t=edge(I, method, param
2、eters),BW=edge(I,roberts) BW=edge(I, roberts,thresh) BW, thresh=edge(I, roberts,.),(1)使用Roberts算子的edge函数语法格式:,BW=edge(I, sobel) BW=edge(I, sobel, thresh) BW=edge(I, sobel, thresh, direction) BW, thresh=edge(I, sobel,.),(2)使用Sobel算子的edge函数语法格式:,BW=edge(I, prewitt) BW=edge(I, prewitt, thresh) BW=edge(
3、I, prewitt, thresh, direction) BW, thresh=edge(I, prewitt,.),(3)使用Prewitt算子的edge函数语法格式:,BW=edge(I, log) BW=edge(I, log, thresh) BW=edge(I, log, thresh, sigma) BW, threshold=edge(I, log,.),(4)使用LOG算子的edge函数语法格式:,BW=edge(I, canny) BW=edge(I, canny, thresh) BW=edge(I, canny, thresh, sigma) BW, threshol
4、d=edge(I, canny,.),(5)使用Canny算子的edge函数语法格式:,不同算子下的边界比较,9.6.2 四叉树分解的分割法,1四叉树分解原理,四叉树分解结构可以用来实现分裂合并算法,在图像分析和图像压缩中应用广泛。四叉树分解将原始图像逐步细分成小块,操作的目的是将具有一致性的像素分到同个小块中。通常这些小块都是方块,只有少数情况分成长方形。,四叉树分解的具体过程:将方形的原始图像分成四个相同大小的方块,判断每个方块是否满足一致性标准;如果满足就不再继续分裂,如果不满足就再细化成四个方块,并对细分得到的方块继续应用一致性经验。这个迭代重复的过程直到所有的方块都满足一致性标准才停
5、止。最后,四叉树分解的结果可能包含多种不同尺寸的方块。,用于四叉树分解的函数有:qtdecomp函数、qtgetblk函数、qtsetblk函数。 其具体作用如表9-4所示。,2四叉树分解的MATLAB实现,表9-4 四叉树分解函数,下面分别介绍它们的具体使用方法。 (1)qtdecomp函数 其语法格式为: S=qtdecomp(I) S=qtdecomp(I, threshold) S=qtdecomp(I, threshold, mindim) S=qtdecomp(I, threshold,mindim maxdim S=qtdecomp(I, fun),目标识别,欧氏距离X,y ar
6、e vectorsd=norm(x-y)d=sqrt(sum(abs(x-repmat(y,p,1).2,2) X,y are matrix D=sqrt(sum(abs(repmat(permute(x,1 3 2),1 q 1)-repmat(permute(y,1 3 2),p 1 1).2,3),目标识别(判别分析),MAT2STR Convert a 2-D matrix to a string in MATLAB syntax.STR = MAT2STR(MAT) converts the 2-D matrix MAT to a MATLABstring so that EVAL(
7、STR) produces the original matrix (towithin 15 digits of precision). Non-scalar matrices areconverted to a string containing brackets .,MAT2STR,MAT2STR,Examplemat2str(magic(3) produces the string 8 1 6; 3 5 7; 4 9 2.a = int8(magic(3)mat2str(a,class) produces the stringint8(8 1 6; 3 5 7; 4 9 2).,STRC
8、MP,STRCMP Compare strings.TF = STRCMP(S1,S2) compares the strings S1 and S2 and returns logical 1(true) if they are identical, and returns logical 0 (false) otherwise.,graycomatrix,graycomatrix Create gray-level co-occurrence matrix from image Syntax glcm = graycomatrix(I) glcms = graycomatrix(I, pa
9、ram1, val1, param2, val2,.) glcm, SI = graycomatrix(.),graycomatrix, I = 1 1 5 6 8 8; 2 3 5 7 0 2; 0 2 3 5 6 7 glcm,SI = graycomatrix(I,NumLevels,9,G,) I =1 1 5 6 8 82 3 5 7 0 20 2 3 5 6 7,glcm =0 0 2 0 0 0 0 0 00 1 0 0 0 1 0 0 00 0 0 2 0 0 0 0 00 0 0 0 0 2 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 2 1 00 0 0 0 0 0 0 1 11 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 1,灰度共生矩阵,灰度共生矩阵除与灰度(i,j)对有关外,还与位移矢量d密切相关. 在实际中选择适当的d,只对有限的d求共生矩阵.本文中采用4种位移矢量.对每一幅图像,按以上4个方向的共生 矩阵,分别记作M1,M2,M3,M4,灰度共生矩阵,能量E、对比度CON、熵ENT、相关COR,4个特征值组成一个特征向量:接下来,将四个方向上的纹理特征向量Vf1,Vf2,Vf3,Vf4取平均值Va 作为标准特征。最后我们定义距离:距离越小,表示两幅图像越相似.,计算公式,能量: 对比度:相关性:熵:,