第9章图像分割.ppt_第1页
第9章图像分割.ppt_第2页
第9章图像分割.ppt_第3页
第9章图像分割.ppt_第4页
第9章图像分割.ppt_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第九章图像分割 2 图像 图像识别 图像预处理 图像理解 图像分割 9 1概述 3 分割出来的各区域对某种性质例如灰度 纹理而言具有相似性 区域内部是连通的的且没有过多小孔 区域边界是明确的 相邻区域对分割所依据的性质有明显的差异 图像分割 特征 4 边缘检测 边缘跟踪 阈值分割 区域分割 图像分割 本章要点 5 9 2边缘检测 基于边缘检测的图像分割方法的基本思路是先确定图像中的边缘像素 然后就可把它们连接在一起构成所需的边界 图像边缘意味着图像中一个区域的终结和另一个区域的开始 图像中相邻区域之间的像素集合构成了图像的边缘 进一步讲 图像的边缘是指图像灰度发生空间突变的象素的集合 6 图像边缘有两个特征 方向和幅度沿边缘走向 像素值变化比较平缓 沿垂直于边缘的走向 像素值则变化比较剧烈 一般常用一阶和二阶导数来描述和检测边缘 综上所述 图像中的边缘可以通过对它们求导数来确定 而导数可利用微分算子来计算 对于数字图像来说 通常是利用差分来近似微分 7 梯度算子 8 对应于欧氏距离的梯度幅值 对应于街区距离的梯度幅值 对应于棋盘距离的梯度幅值 由梯度矢量幅角表示的梯度方向是函数f x y 增加最快的方向 9 梯度算子 Roberts算子 10 梯度算子 Sobel算子 11 梯度算子 Prewitt算子 12 梯度算子 原图 Prewitt算子 Sobel算子 Roberts算子 13 拉普拉斯算子 差分 微分 二阶导数算子 14 拉普拉斯算子 图9 5两种常用的拉普拉斯算子模板 15 拉普拉斯算子 16 Canny算子 好的检测结果 对边缘的错误检测率要尽可能低 在检测出图像真实的边缘的同时要避免检测出现虚假的边缘 好的边缘定位精度 标记出的边缘位置要和图像上真正边缘的位置尽量接近 对同一边缘要有低的响应次数 有的算子会对一个边缘回产生多个响应 也就是说图像上本来只有一个边缘点的 可是检测出来就会出现多个边缘点 克服噪声的影响 基本思想 17 Canny算子 算法步骤 用高斯滤波器平滑图像 计算滤波后图像梯度的幅值和方向 对梯度幅值应用非极大值抑制 其过程为找处图像梯度中的局部极大值点 把其它非局部极大值点置零以得到得到细化的边缘 用双阈值算法检测和连接边缘 使用两个阈值T1和T2 T1 T2 T1用来找到每条线段 T2用来在这些线段的两个方向上延伸寻找边缘的断裂处 并连接这些边缘 18 Canny算子 实例 19 算子比较 Roberts算子 Roberts算子利用局部差分算子寻找边缘 边缘定位精度较高 但容易丢失一部分边缘 同时由于图像没经过平滑处理 因此不具备能抑制噪声能力 该算子对具有陡峭边缘且含噪声少的图像效果较好 Sobel算子和Prewitt算子 都是对图像先做加权平滑处理 然后再做微分运算 所不同的是平滑部分的权值有些差异 因此对噪声具有一定的抑制能力 但不能完全排除检测结果中出现的虚假边缘 虽然这两个算子边缘定位效果不错 但检测出的边缘容易出现多像素宽度 20 算子比较 Laplacian算子 是不依赖于边缘方向的二阶微分算子 对图像中的阶跃型边缘点定位准确 该算子对噪声非常敏感 它使噪声成分得到加强 这两个特性使得该算子容易丢失一部分边缘的方向信息 造成一些不连续的检测边缘 同时抗噪声能力较差 LOG算子 克服了拉普拉斯算子抗噪声能力较差的缺点 但在抑制噪声的同时也可能将原有的比较尖锐的边缘也平滑掉了 造成这些尖锐边缘无法被检测到 21 算子比较 Canny算子 基于最优化思想推导出的边缘检测算子 但实际效果不一定最优 该算子同样采用高斯函数对图像做平滑处理 具有较强的噪声抑制能力 但是会将一些高频边缘平滑掉 造成边缘丢失 Canny算子采用双阈值算法检测和连接边缘 采用的多尺度检测和方向性搜索比LOG算子好 22 MATLAB图像处理工具箱利用edge函数来实现基于各种算子的边缘检测功能 这个函数寻找像素值剧烈变化的像素点 调用格式如下 g t edge I method parameters 其中I是输入图像 method是边缘检测算子 parameters是设置的参数 输出g是二值图像矩阵 其值为1的像素构成边缘 参数t给出函数使用的阈值 23 1 使用Roberts算子的语法结构 BW edge I roberts thresh options 其中thresh表示阈值 低于该阈值的像素值将被忽略 options默认为 thinning 即边缘细化 当取值为 nothinning 边缘不细化 可以对算法加速 24 2 使用Sobel算子的语法结构 BW edge I sobel thresh direction options 其中direction是指Sobel算子的检测方向 可取值horizontal vertical或者both 3 使用Prewitt算子的语法结构 BW edge I prewitt thresh direction 25 4 使用Canny算子的语法结构 BW edge I canny thresh sigma 其中thresh表示阈值 若为两个元素的向量 则第一个元素为低阈值 第二个元素为高阈值 若为一个元素 表示高阈值 低阈值为0 5 thresh sigma是指高斯滤波器的标准差 缺省值为1 滤波器的大小根据sigma的值选择 26 5 使用Log算子的语法结构 BW edge I log thresh sigma 其中sigma是指高斯滤波器的标准差 缺省值为2 滤波器的大小为ceil sigma 3 2 1 27 I imread rice png BW1 edge I roberts 以自动阈值选择法对图像进行Roberts算子边缘检测 BW1 thresh1 edge I roberts 返回当前Roberts算子边缘检测的阈值disp Roberts算子自动选择阈值为 disp thresh1 figure subplot 2 2 1 imshow BW1 title 自动阈值的Roberts算子检测 BW2 edge I roberts 0 07 以阈值为0 07对图像进行Roberts算子检测subplot 2 2 2 imshow BW2 title 阈值为0 07的Roberts算子检测 BW3 edge I roberts 0 05 以阈值为0 05对图像进行Roberts算子检测subplot 2 2 3 imshow BW3 title 阈值为0 05的Roberts算子检测 BW4 edge I roberts 0 03 以阈值为0 03对图像进行Roberts算子检测subplot 2 2 4 imshow BW4 title 阈值为0 03的Roberts算子检测 28 29 I imread rice png BW1 edge I roberts BW2 edge I sobel BW3 edge I prewitt BW4 edge I canny BW5 edge I log figure subplot 2 3 1 imshow I title 原始图像 subplot 2 3 2 imshow BW1 title Roberts算子 subplot 2 3 3 imshow BW2 title Sobel算子 subplot 2 3 4 imshow BW3 title Prewitt算子 subplot 2 3 5 imshow BW4 title Canny算子 subplot 2 3 6 imshow BW5 title Log算子边缘检测 30 31 9 3边缘跟踪 数字图像可用各种方法检测出边缘点 但是由于噪声 光照不均等因素的影响 获得的边缘点有可能是不连续的 必须通过边界跟踪将它们转换为有用的边界信息 以便于后续处理 32 基本步骤 从图像中一个边缘点出发 然后根据某种判别准则搜索下一个边缘点以此跟踪出目标边界 确定边界的起始搜索点 起始点的选择很关键 对某些图像 选择不同的起始点会导致不同的结果 确定合适边界判别准则和搜索准则 判别准则用于判断一个点是不是边界点 搜索准则则指导如何搜索下一个边缘点 确定搜索的终止条件 33 是一种适用于黑白二值图像的图像分割方法 算法步骤 1 在靠近边缘处任取一起始点 然后按照每次只前进一步 步距为一个象素的原则开始跟踪 2 当跟踪中的某步是由白区进入黑区时 以后各步向左转 直到穿出黑区为止 3 当跟踪中的某步是由黑区进入白区时 以后各步向右转 直到穿出白区为止 4 当围绕目标边界循环跟踪一周回到起点时 则所跟踪的轨迹便是目标的轮廓 否则 应继续按 2 和 3 的原则进行跟踪 9 3 1轮廓跟踪法 34 35 a 某些小凸部分可能被漏掉 b 利用不同起点跟踪小凸部分 36 9 3 2光栅跟踪法 光栅跟踪方法的基本思想是先利用检测准则确定接受对象点 然后根据已有的接受对象点和跟踪准则确定新的接受对象点 最后将所有标记为1且相邻的对象点联接起来就得到了检测到的细曲线 37 需要事先确定检测阈值d 跟踪阈值t 且要求d t 检测准则 对图像逐行扫描 将每一行中灰度值大于或等于检测阈值d的所有点 称为接受对象点 记为1 跟踪准则 设位于第i行的点 i j 为接受对象点 如果位于第i 1行上的相邻点 i 1 j 1 i 1 j 和 i 1 j 1 的灰度值大于或等于跟踪阈值t 就将其确定为新的接受对象点 并记为1 38 光栅跟踪图像分割算法 1 确定检测阈值d和跟踪阈值t 且要求d t 2 用检测阈值d逐行对图像进行扫描 依次将灰度值大于或等于检测阈值d的点的位置记为1 3 逐行扫描图像 若图像中的 i j 点为接受对象点 则在第i 1行上找点 i j 的邻点 i 1 j 1 i 1 j i 1 j 1 并将其中灰度值大于或等于跟踪阈值t的邻点确定为新的接受对象点 将相应位置记为1 4 重复步骤 3 直至图像中除最末一行以外的所有接受点扫描完为止 39 例d 7 t 4 a 1解题过程和检测结果 b 直接取阈值为4时的检测结果 40 bwtraceboundary函数的调用形式 B bwtraceboundary BW p fstep conn N dir 其中参数P是一个指定行 列坐标的二元向量 表示图像边界上开始跟踪的那个点 fstep表示初始查找方向 用于寻找对象中与P相连的下一个像素 例如字符串 N 表示north NE 表示northeast 以指定方向 除了N NE外还有其它几个方向 参数conn刻画了跟踪边界的连续性 数值可以是4或8 表示4连通或8连通 N为图像边界的最大像素数目 缺省值为inf dir表示跟踪边界的方向 顺时针方向为clockwise 逆时针方向为conterclockwise B为返回值 表示边界像素的二维坐标 边界跟踪通常用bwtraceboundary函数和bwboundaries函数来处理 41 BW imread blobs png 读取图像imshow BW 显示图像s size BW 获取图像尺寸forrow 2 55 s 1 forcol 1 s 2 ifBW row col break endendcontour bwtraceboundary BW row col W 8 50 counterclockwise 检测是否为边界if isempty contour holdon plot contour 2 contour 1 g LineWidth 2 画出边界holdon plot col row gx LineWidth 2 画出边界起点elseholdon plot col row rx LineWidth 2 endend 42 43 另外一个用来进行边界跟踪的函数是bwboundaries 它的调用形式是 B bwboundaries BW conn options B L N A bwboundaries BW conn 其中参数options通过设置数值为 holes 或 noholes 来决定是否需要内边界 L是返回的标签矩阵 N是返回的目标数 A是返回的邻接矩阵 44 BW imread blobs png 读取图像 B L N A bwboundaries BW 返回边界 标签矩阵 目标数imshow BW holdon 显示图像fork 1 length B if sum A k boundary B k plot boundary 2 boundary 1 r LineWidth 2 显示目标边界forl find A k boundary B l plot boundary 2 boundary 1 g LineWidth 2 显示内部边界endendend 45 46 Hough变换 Hough变换可以用于将边缘像素连接起来得到边界曲线 优点在于受噪声和曲线间断的影响较小 在已知曲线形状的条件下 Hough变换实际上是利用分散的边缘点进行曲线逼近 它也可看成是一种聚类分析技术 47 Hough变换问题的提出 在找出边界点集之后 需要连接 形成完整的边界图形描述 48 Hough变换的基本思想 对于边界上的n个点的点集 找出共线的点集和直线方程 对于任意两点的直线方程 y ax b 构造一个参数a b的平面 从而有如下结论 49 xy平面上的任意一条直线y ax b 对应在参数ab平面上都有一个点过xy平面一个点 x y 的所有直线 构成参数ab平面上的一条直线 50 如果点 x1 y1 与点 x2 y2 共线 那么这两点在参数ab平面上的直线将有一个交点 y x x1 y1 x2 y2 a b 51 a b A 在参数ab平面上相交直线最多的点 对应的xy平面上的直线就是我们的解 52 Hough变换算法实现 由于垂直直线a 为无穷大 我们改用极坐标形式 xcos ysin 参数平面为 对应不是直线而是正弦曲线使用交点累加器 或交点统计直方图 找出相交线段最多的参数空间的点然后找出该点对应的xy平面的直线线段 53 54 在MATLAB图像处理工具箱中使用hough函数来检测图像中的直线 其常用调用形式为 H theta rho hough BW H theta rho hough BW PARAM1 VAL1 PARAM2 VAL2 其中BW是测试图像 PARAM1 VAL1 PARAM2和VAL2可以设置具体的参数和取值 55 RGB imread gantrycrane png 读取图像I rgb2gray RGB 转换成灰度图像BW edge I canny 用canny算子进行边缘检测 H T R hough BW Theta 44 0 5 46 hough变换figure subplot 2 1 1 imshow RGB title gantrycrane png subplot 2 1 2 显示hough变换的变换矩阵imshow imadjust mat2gray H XData T YData R InitialMagnification fit title LimitedthetarangeHoughtransformofgantrycrane png xlabel theta ylabel rho axison axisnormal colormap hot 颜色映射表 56 57 Hough变换 原始图像 二值化图像 细化图像 Hough变换检测出的直线 直线检测 58 9 4阈值分割 在图像分割的众多方法中 阈值分割法是一种最基本和应用最广泛的分割技术 其实质就是利用图像灰度直方图信息得到图像分割的阈值 59 基本原理 原始图像 f x y 灰度阈值 T阈值运算得二值图像 g x y 阈值选择直接影响分割效果 通常可以通过对灰度直方图的分析来确定它的值 60 阈值选择 利用灰度直方图求双峰或多峰选择两峰之间的谷底作为阈值 61 人工阈值 人工选择法是通过人眼的观察 应用人对图像的知识 在分析图像直方图的基础上 人工选出合适的阈值 也可以在人工选出阈值后 根据分割效果 不断的交互操作 从而选择出最佳的阈值 62 T 155的二值化图像T 210的二值化图像 原始图像 图像直方图 人工阈值 63 自动阈值 迭代法 基本思想 开始时选择一个阈值作为初始估计值 然后按某种策略不断地改进这一估计值 直到满足给定的准则为止 在迭代过程中 关键之处在于选择什么样的阈值改进策略 好的阈值的改进策略应该具备两个特征 一是能够快速收敛 二是在每一个迭代过程中 新产生阈值优于上一次的阈值 64 自动阈值 迭代法 1 选择图像灰度的中值作为初始阈值Ti T0 2 利用阈值Ti把图像分割成两部分区域 R1和R2 并计算其灰度均值 3 计算新的阈值Ti 1 4 重复步骤2 3 直到Ti 1和Ti的值差别小于某个给定值 65 自动阈值 迭代法 原始图像 迭代阈值二值化图象 图9 20迭代式阈值二值化图像 66 自动阈值 Ostu法 Matlab工具箱提供的graythresh函数是采用Ostu法求取阈值 67 I imread coins png subplot 121 imshow I title 原始图像 level graythresh I BW im2bw I level subplot 122 imshow BW title Otsu方法二值化图像 68 69 自动阈值 分水岭算法 分水岭算法 watershed 是一种借鉴了形态学理论的分割方法 它将一幅图象看成为一个拓扑地形图 其中灰度值被认为是地形高度值 高灰度值对应着山峰 低灰度值处对应着山谷 将水从任一处流下 它会朝地势底的地方流动 直到某一局部低洼处才停下来 这个低洼处被称为吸水盆地 最终所有的水会分聚在不同的吸水盆地 吸水盆地之间的山脊被称为分水岭 水从分水岭流下时 它朝不同的吸水盆地流去的可能性是相等的 将这种想法应用于图像分割 就是要在灰度图像中找出不同的吸水盆地和分水岭 由这些不同的吸引盆地和分水岭组成的区域即为我们要分割的目标 70 自动阈值 分水岭算法 a 原始图像 b 图像对应的拓扑地形图图9 23图像对应的拓扑表面图 71 自动阈值 分水岭算法 分水岭阈值选择算法可以看成是一种自适应的多阈值分割算法 图9 24分水岭形成示意图 分水岭对应于原始图像中的边缘 72 自动阈值 分水岭算法 L watershed f MATLAB函数 图9 25不准确标记分水岭算法导致过分割 原始图像 分水岭 分割结果 局部极小值 73 分水岭算法可以用图像工具箱中的watershed函数来实现 调用格式为 L watershed f 其中f为输入图像 L为输出标记矩阵 元素为整数值 第一个积水盆被标记为1 第二个积水盆被标记为2 依次类推 分水岭被标记为0 74 clear I imread rice png subplot 221 imshow I title 原始图像 I double I hv fspecial prewitt hh hv 计算梯度图gv abs imfilter I hv replicate gh abs imfilter I hh replicate g sqrt gv 2 gh 2 计算距离函数subplot 222 L watershed g wr L 0 imshow wr title 分水岭 I wr 255 subplot 223 imshow uint8 I title 分割结果 rm imregionalmin g 取出梯度图中局部极小值点subplot 224 imshow rm title 局部极小值 75 76 自动阈值 改进的分水岭算法 图9 26准确标记的分水岭算法分割过程 原始图像 原图像的距离变换 标记外部约束 标记内部约束 由标记内外部约束重构的梯度图 分割结果 77 clear I imread rice png subplot 221 imshow I 原始图像xlabel 原始图像 计算梯度图I double I hv fspecial prewitt hh hv gv abs imfilter I hv replicate gh abs imfilter I hh replicate g sqrt gv 2 gh 2 计算距离函数df bwdist I 计算外部约束L watershed df em L 0 im imextendedmax I 20 计算内部约束subplot 222 imshow im xlabel 内部约束 g2 imimposemin g im em 重构梯度图subplot 223 imshow g2 xlabel 梯度图 watershed算法分割L2 watershed g2 wr2 L2 0 subplot 224 I wr2 255 imshow uint8 I xlabel 分割结果 78 79 阈值分割法由于没有或很少考虑空间关系 使多阈值选择受到限制 区域分割方法可以弥补这点不足 它利用的是图像的空间性质 该方法认为分割出来的属于同一区域的像素应具有相似的性质 其概念是相当直观的 传统的区域分割算法有区域增长法和区域分裂合并法 该类方法在没有先验知识可以利用时 对含有复杂场景或自然景物等先验知识不足的图像进行分割 可以取得较好的性能 9 5区域分割 80 区域生长 区域生长法主要考虑象素及其空间邻域象素之间的关系 开始时确定一个或多个象素点作为种子 然后按某种相似性准则增长区域 逐步生成具有某种均匀性的空间区域 将相邻的具有相似性质的象素或区域归并从而逐步增长区域 直至没有可以归并的点或其它小区域为止 区域内象素的相似性度量可以包括平均灰度值 纹理 颜色等信息 81 区域生长 选择合适的种子点 确定相似性准则 生长准则 确定生长停止条件 步骤 例 找出图像中的亮目标相似准则 每一步所接收的邻近点的灰度级与先前目标的平均灰度级相差 2 选种子点 m 9 平均值m 生长 停止 m 3 8 9 4 8 25 m 3 8 7 9 5 8 84 区域生长 实例 图9 29区域生长 原始图像及种子点位置 三个种子点区域生长结果 原始图像及种子点位置 四个种子点区域生长结果 85 区域生长可以用图像处理工具箱的imreconstruct函数来实现 函数的调用格式为 im imreconstruct marker mask 其中marker为标记图像 mask为模板图像 im为输出图像 86 mask imread text png marker false size mask marker 13 94 true im imreconstruct marker mask subplot 2 1 1 imshow mask subplot 2 1 2 imshow im 87 88 区域分裂 条件 如果区域的某些特性不满足一致性准则开始 从图像的最大区域开始 一般情况下 是从整幅图像开始注意 确定分裂准则 一致性准则 确定分裂方法 即如何分裂区域 使得分裂后的子区域的特性尽可能都满足一致性准则值 89 区域分裂 算法 形成初始区域 对图像的每一个区域Ri 计算P Ri 如果P Ri FALSE则沿着某一合适的边界分裂区域 重复步骤2 当没有区域需分裂时 算法结束 90 区域合并 合并运算就是把相邻的具有相似性质的区域合成为一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论