图像切割之(一)概述

zouxy09@qq.com

http://blog.csdn.net/zouxy09

所谓图像切割指的是依据灰度、颜色、纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出明显的差异性。我们先对眼下基本的图像切割方法做个概述,后面再对个别方法做具体的了解和学习。

1、基于阈值的切割方法

阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每一个像素的灰度值与阈值相比較,最后将像素依据比較结果分到合适的类别中。因此,该类方法最为关键的一步就是依照某个准则函数来求解最佳灰度阈值。

2、基于边缘的切割方法

所谓边缘是指图像中两个不同区域的边界线上连续的像素点的集合,是图像局部特征不连续性的反映,体现了灰度、颜色、纹理等图像特性的突变。通常情况下,基于边缘的切割方法指的是基于灰度值的边缘检測,它是建立在边缘灰度值会呈现出阶跃型或屋顶型变化这一观測基础上的方法。

阶跃型边缘两边像素点的灰度值存在着明显的差异,而屋顶型边缘则位于灰度值上升或下降的转折处。正是基于这一特性,能够使用微分算子进行边缘检測,即使用一阶导数的极值与二阶导数的过零点来确定边缘,详细实现时能够使用图像与模板进行卷积来完毕。

3、基于区域的切割方法

此类方法是将图像依照相似性准则分成不同的区域,主要包含种子区域生长法、区域分裂合并法和分水岭法等几种类型。

种子区域生长法是从一组代表不同生长区域的种子像素開始,接下来将种子像素邻域里符合条件的像素合并到种子像素所代表的生长区域中,并将新加入的像素作为新的种子像素继续合并过程,直到找不到符合条件的新像素为止。该方法的关键是选择合适的初始种子像素以及合理的生长准则。

区域分裂合并法(Gonzalez,2002)的基本思想是首先将图像随意分成若干互不相交的区域,然后再依照相关准则对这些区域进行分裂或者合并从而完毕切割任务,该方法既适用于灰度图像切割也适用于纹理图像切割。

分水岭法(Meyer,1990)是一种基于拓扑理论的数学形态学的切割方法,其基本思想是把图像看作是測地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。该算法的实现能够模拟成洪水淹没的过程,图像的最低点首先被淹没,然后水逐渐淹没整个山谷。当水位到达一定高度的时候将会溢出,这时在水溢出的地方修建堤坝,反复这个过程直到整个图像上的点所有被淹没,这时所建立的一系列堤坝就成为分开各个盆地的分水岭。分水岭算法对微弱的边缘有着良好的响应,但图像中的噪声会使分水岭算法产生过切割的现象。

4、基于图论的切割方法

此类方法把图像切割问题与图的最小割(min cut)问题相关联。首先将图像映射为带权无向图G=<V,E>,图中每一个节点N∈V相应于图像中的每一个像素,每条边∈E连接着一对相邻的像素,边的权值表示了相邻像素之间在灰度、颜色或纹理方面的非负相似度。而对图像的一个切割s就是对图的一个剪切,被切割的每一个区域C∈S相应着图中的一个子图。而切割的最优原则就是使划分后的子图在内部保持相似度最大,而子图之间的相似度保持最小。基于图论的切割方法的本质就是移除特定的边,将图划分为若干子图从而实现切割。眼下所了解到的基于图论的方法有GraphCut,GrabCut和Random Walk等。

5、基于能量泛函的切割方法

该类方法主要指的是活动轮廓模型(active contour model)以及在其基础上发展出来的算法,其基本思想是使用连续曲线来表达目标边缘,并定义一个能量泛函使得其自变量包含边缘曲线,因此切割过程就转变为求解能量泛函的最小值的过程,一般可通过求解函数相应的欧拉(Euler.Lagrange)方程来实现,能量达到最小时的曲线位置就是目标的轮廓所在。依照模型中曲线表达形式的不同,活动轮廓模型能够分为两大类:參数活动轮廓模型(parametric active contour model)和几何活动轮廓模型(geometric active contour model)。

參数活动轮廓模型是基于Lagrange框架,直接以曲线的參数化形式来表达曲线,最具代表性的是由Kasset a1(1987)所提出的Snake模型。该类模型在早期的生物图像切割领域得到了成功的应用,但其存在着切割结果受初始轮廓的设置影响较大以及难以处理曲线拓扑结构变化等缺点,此外其能量泛函仅仅依赖于曲线參数的选择,与物体的几何形状无关,这也限制了其进一步的应用。

几何活动轮廓模型的曲线运动过程是基于曲线的几何度量參数而非曲线的表达參数,因此能够较好地处理拓扑结构的变化,并能够解决參数活动轮廓模型难以解决的问题。而水平集(Level Set)方法(Osher,1988)的引入,则极大地推动了几何活动轮廓模型的发展,因此几何活动轮廓模型一般也可被称为水平集方法。

转载于:https://www.cnblogs.com/bhlsheji/p/4293340.html

图像切割之(一)概述相关推荐

  1. 人脸图像切割分离工具

    最近在做人脸识别,需要对人脸数据集进行处理,对一张或批量图像的人脸进行切割分离,并且另保存下来.受网上开源工具的启发,在借鉴他人的基础上进行了改进,使得更加方便实用. 以下代码是改进版,分为两部分功能 ...

  2. 图像处理技术:图像切割、标签、贴纸花字,超细开发详解

    上一篇:图像处理之滤镜.图文排版的开发详解中,详解了如何给应用增加图片编辑能力中的滤镜和图文排版能力,今天我们继续带来华为图像能力中五大图像编辑能力的另外三大能力:图像切割.主题标签,以及贴纸花字,相 ...

  3. 利用图像数字识别和图像切割实现自动批改小学生作业

    点击上方"码农的后花园",选择"星标" 公众号 精选文章,第一时间送达 一.亮出效果 最近一些软件的搜题.智能批改类的功能要下线. 退1024步讲,要不要自己做 ...

  4. java实现图片切割_【Java】K-means算法Java实现以及图像切割

    1.K-means算法简述以及代码原型 总的来讲,k-means聚类须要下面几个步骤: ①.初始化数据 ②.计算初始的中心点,能够随机选择 ③.计算每一个点到每一个聚类中心的距离.而且划分到距离最短的 ...

  5. OpenCV——使用ROI进行图像切割

    ROI(region of interest)--感兴趣区域. 1.用途 这个区域是图像分析所关注的重点.圈定这个区域,以便进行进一步的处理.而且,使用ROI指定 想读入的目标,可以减少处理时间,增加 ...

  6. 图像分割 c语言程序,OpenCV实现图像切割功能

    openCV实现将图像切成m*n块,供大家参考,具体内容如下 一.代码部分: #include "stdafx.h" #include #include #include #inc ...

  7. 基于深度学习的图像语义分割技术概述之背景与深度网络架构

    本文为论文阅读笔记,不当之处,敬请指正.  A Review on Deep Learning Techniques Applied to Semantic Segmentation: 原文链接 摘要 ...

  8. python opencv 图像切割_【OpenCV+Python】图像的基本操作与算术运算

    图像的基本操作 在上个教程中,我们介绍了使用鼠标画笔的功能.本次教程,我们将要谈及OpenCV图像处理的基本操作. 本次教程的所有操作基本上都和Numpy相关,而不是与OpenCV相关.要使用Open ...

  9. ISP(图像信号处理)算法概述、工作原理、架构、处理流程

    目录 ISP的主要内部构成:ISP内部包含 CPU.SUP IP(各种功能模块的通称).IF 等设备 ISP的控制结构:1.ISP逻辑    2.运行在其上的firmware ISP上的Firmwar ...

最新文章

  1. 谈谈职业规划——CSDN对我的采访
  2. 关于使用mail命令产生:-bash: mail: command not found的解决方法
  3. vim-commentary 插件用法
  4. sap转换成基本订单单位
  5. mxnet基础到提高(13)--Activation激活函数
  6. Linux 新加一块硬盘,添加到已有逻辑卷扩容
  7. 巴西政府考虑用微软产品替换开源软件
  8. TCP/IP协议、DoD模型、OSI模型
  9. python决策树分类案例_银行产品销售案例与决策树分类算法
  10. MATLAB——SRTM DEM显示
  11. 实现添加数据、地图放大、缩小、漫游、全景视图、鹰眼图的操作(ICommand、ITool)...
  12. TR CEV65M-01460一个人,也有春夏秋冬
  13. 计算机防火墙知识点,防火墙及防火墙的基本概念-信息安全工程师知识点
  14. 代理服务 SQUID 测试
  15. 日常开单送货VBA模块
  16. 安全防御 --- 防火墙
  17. 一起来探索从双击程序到开始运行期间计算机经历了哪些过程
  18. Python 爬虫、抓包
  19. c++重载函数的条件
  20. 大数据时代,我们必守的三条底线,大数据杀熟,不可忍

热门文章

  1. 使用链栈来对十进制数进行任意进制的转换
  2. 反弹c语言作业,C语言实现反弹球小游戏
  3. linux 查看java进程_Linux进程查看及管理工具(ps, vmstat, dstat, glances等)
  4. 不错的Android开发网站
  5. python怎么打印出文件的内容,python怎么将打印输出日志文件
  6. opencv亚像素点检测
  7. 如何构建一个有效的知识库?
  8. mybatis 配置文件中set丢失逗号
  9. 给妹子讲python-S01E19解析Python内嵌作用域与函数闭包
  10. 2011寒假-操作系统学习笔记