智能图像处理:Python和OpenCV实现第十章 图像分割.pptx

智能图像处理:Python和OpenCV实现第十章 图像分割.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 图像分割;图像分割(image segmentation)技术是计算机视觉领域的一个重要的研究方向,是图像语义理解的重要一环。 图像分割是指将图像分成若干具有相似性质区域的过 程,从数学角度来看,图像分割是将图像划分成互不相交区域的过程。 图像分割是一种基本的图像处理技术,是指将图像分成不同特性的区域,并对目标进行提取的技术,它是由图像处理到图像分析的关键步骤。目标提取和图像理解都是在图像分割的基础上进行的。 图像分割就是把图像分成若干个特定的、具有独特性质的??域并提取出感兴趣目标的技术和过程。 现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。还有分成语义分割和实例分割。 图像分割的过程也是一个标记过程,即把属于同一区域的像素赋予相同的编号。 ;10.1 图像阈值分割;全局阈值 是指整幅图像使用同一个阈值做分割处理,适用于背景和前景有明显对比的图像,它是根据整幅图像确定的。但是这种方法只考虑像素本身的灰度值,一般不考虑空间特征,因而对噪声很敏感。 常用的全局阈值选取方法有利用图像灰度直方图的峰谷法、最小误差法、最大类间方差法、最大熵自动阈值法以及其它一些方法。;自适应阈值;最佳阈值;10.1.1 全局阈值分割;表10-1 阈值类型type参数;【例10.1】使用各种阈值分割类型对图像进行处理,程序代码如下:;程序运行结果如图10-1所示。;10.1.2自适应阈值;【例10.2】使用自适应选取阈值方法对图像进行处理,程序代码如下:;程序运行结果如图10-2所示;10.1.3 Otsu’s二值化(大津阈值分割法);计算图像直方图; 设定阈值,把直方图强度大于阈值的像素分成一组,把小于阈值的像素分成另外一组; 分别计算两组内的偏移数,并把偏移数相加。 把0~255依照顺序设为阈值,重复1-3的步骤,直到得到最小偏移数,其所对应的值即为最终阈值。;【例10.3】使用Otsu’s二值化求取阈值,对图像进行分割,程序代码如下:;程序运行结果如图10-3所示;10.2 图像区域分割;区域生长需要选择一组能正确代表所需区域的种子像素,确定在生长过程中的相似性准则,制定让生长停止的条件或准则。 相似性准则可以是灰度级、彩色、纹理、梯度等特性。选取的种子像素可以是单个像素,也可以是包含若干个像素的小区域。大部分区域生长准则使用图像的局部性质,生长准则可根据不同原则制定,而使用不同的生长准则会影响区域生长的过程。 区域生长法的优点是计算简单,对于较均匀的连通目标有较好的分割效果。它的缺点是需要人为确定种子点,对噪声敏感,可能导致区域内有空洞。另外,它是一种串行区域分割图像的分割方法,当目标较大时,分割速度较慢,因此在设计算法时,要尽量提高效率。 区域生长是指从某个像素出发,按照一定的准则,逐步加入邻近像素,当满足一定的条件时,区域生长终止,最后得到整个区域,进而实现目标的提取。区域生长的好坏决定于①初始点(种子点)的选取;②生长准则;③终止条件。;区域生长实现的具体步骤如下: 1)对图像顺序扫描。找到第1个还没有归属的像素,设该像素为(x0, y0); 2)以(x0, y0)为中心,考虑(x0, y0)的4邻域像素(x,y)。如果(x0, y0)满足生长准则,将(x, y)与(x0, y0)合并(在同一区域内),同时将(x, y)压入堆栈; 3)从堆栈中取出一个像素,把它当作(x0, y0)返回到步骤2; 4)当堆栈为空时返回到步骤1; 5)重复步骤1—4直到图像中的每个点都有归属时,生长结束。;【10.4】基于初始种子自动选取的区域生长。程序代码如下:; if X_seed.size 0 and Y_seed.size 0: seeds.append((X_seed[0], Y_seed[0])) #将种子坐标写入seeds thresh_B[Xb, Yb] = 0 #将thresh_B像素值置零 return seeds ? #区域生长 def regionGrow(gray, seeds, thresh, p): seedMark = np.zeros(gray.shape) if p == 8: #八邻域 connection = [(-1,-1),(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1)] elif p == 4: #四邻域 connection = [(-1, 0), (0, 1), (1, 0), (0, -1)] ? #seeds内无元素时候生长停止

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档