图像分割与提取

图像分割与提取,第1张

  在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来。

  例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆、行人或者其他对象。我们希望将这些对象从视频中提取出来,而忽略那些没有对象进入背景的视频内容。

  在前面的章节中,我们讨论了如何使用诸如:

  图像分割是图像处理过程中一种非常重要的 *** 作。分水岭算法将图像形象地比喻为地理学上的地形表面,实现图像分割,该算法非常有效。

  冈萨雷斯在《数字图像处理》一书中,对分水岭算法进行了细致的分析与介绍。OpenCV的官网建议学习者阅读国立巴黎高等矿业学校图像处理实验室(TheImage Processing Laboratory of MINES ParisTech)的CMM(Centre forMathematical Morphology)网站上关于分水岭算法的介绍和动画演示。

  任何一幅灰度图像,都可以被看作是地理学上的地形表面,灰度值高的区域可以被看成是山峰,灰度值低的区域可以被看成是山谷。如图17-1所示,其中左图是原始图像,右图是其对应的“地形表面”。

  如果我们向每一个山谷中“灌注”不同颜色的水(这里采用了OpenCV官网的表述,冈萨雷斯将灌注表述为在山谷中打洞,然后让水穿过洞以均匀的速率上升)。那么,随着水位不断地升高,不同山谷的水就会汇集到一起。在这个过程中,为了防止不同山谷的水交汇,我们需要在水流可能汇合的地方构建堤坝。该过程将图像分成两个不同的集合:集水盆地和分水岭线。我们构建的堤坝就是分水岭线,也即对原始图像的分割。这就是分水岭算法。

  在图17-2中,左图是原始图像,右图是使用分水岭算法得到的图像分割结果。在CMM的网站上不仅提供了该示例图像,还提供了动画演示效果

  由于噪声等因素的影响,采用上述基础分水岭算法经常会得到过度分割的结果。过度分割会将图像划分为一个个稠密的独立小块,让分割失去了意义。

  为了改善图像分割效果,人们提出了基于掩模的改进的分水岭算法。改进的分水岭算法允许用户将他认为是同一个分割区域的部分标注出来(被标注的部分就称为掩模)。这样,分水岭算法在处理时,就会将标注的部分处理为同一个分割区域。大家可以尝试使用微软PowerPoint中的“删除背景”功能,加深对此改进算法的理解。

数字图像处理主要研究的内容有以下几个方面:1) 图像变换由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用2) 图像编码压缩图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术3) 图像增强和复原图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立"降质模型",再采用某种滤波方法,恢复或重建原来的图像4) 图像分割图像分割是数字图像处理中的关键技术之一图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一5) 图像描述是图像识别和理解的必要前提作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法对于特殊的纹理图像可采用二维纹理特征描述随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法6) 图像分类(识别)图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越来越受到重视

从学术角度讲图像分割主要分成3大类,一是基于边缘的,二是基于区域的,三是基于纹理的。由于基于纹理的也可以看成是基于区域的,所以有些专家也把分割方法分成基于边缘和基于区域两大类。

选择算法的时候主要参考你要分割的图像样本的特点。

如果图像的边界特别分明,比如绿叶和红花,在边界处红绿明显不同,可以精确提取到边界,这时候用基于边缘的方法就可行。但如果是像医学图像一样,轮廓不是特别明显,比如心脏图像,左心房和左心室颜色比较接近,它们之间的隔膜仅仅是颜色比它们深一些,但是色彩上来说很接近,这时候用基于边缘的方法就不合适了,用基于区域的方法更好。再比如带纹理的图像,例如条纹衫,如果用基于边缘的方法很可能就把每一条纹都分割成一个物体,但实际上衣服是一个整体,这时候用基于纹理的方法就能把纹理相同或相似的区域分成一个整体。

不过总体来说,基于区域的方法近些年更热一些,如Meanshift分割方法、测地线活动轮廓模型、JSEG等。

根据两个点(x0,y0)以及(x1,y1)得出一个区域Rectangle

Rectangle rect = new Rectangle (x0,y0,(x1-x0),(y1-y0));

再调用如下的函数可得到截取的图像

/// <summary>

/// 截取图像的矩形区域

/// </summary>

/// <param name="source">源图像对应picturebox1</param>

/// <param name="rect">矩形区域,如上初始化的rect</param>

/// <returns>矩形区域的图像</returns>

public static Image AcquireRectangleImage(Image source, Rectangle rect) {

if (source == null || rectIsEmpty) return null;

Bitmap bmSmall = new Bitmap(rectWidth, rectHeight, SystemDrawingImagingPixelFormatFormat32bppRgb);

//Bitmap bmSmall = new Bitmap(rectWidth, rectHeight, sourcePixelFormat);

using (Graphics grSmall = GraphicsFromImage(bmSmall)) {

grSmallDrawImage(source,

new SystemDrawingRectangle(0, 0, bmSmallWidth, bmSmallHeight),

rect,

GraphicsUnitPixel);

grSmallDispose();

}

return bmSmall;

}

以上就是关于图像分割与提取全部的内容,包括:图像分割与提取、对数字图像进行处理的步骤有哪些、数字图像处理~图像分割等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10166399.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存