图像分割

让计算机代替人来完成对于红白细胞的自动分析,关键在于对红白细胞的分割与识别。

目前,已经出现了许多种分割和识别方法。在分割上有阈值分割、聚类、边缘检测以及区域提取等方法。特定地使用某种阈值分割法只能将其中的一部分红白细胞分割出来。聚类法是通过检测相似点的簇来对每个聚类进行标记,其缺点是聚类数目事先不可知,而且没有考虑到不同类别间的交叉性。边缘检测通过确定强度值的突变点的位置来区分不同的区域,但是仅仅通过边缘检测并不能取得整体上较满意的效果。区域提取存在停止准则确定困难以及计算复杂等缺点。

结合红白细胞的高倍镜下图像的特点,本文采用了一种基于中值滤波和形态学结合的边缘检测方法,在对灰度图像和二值图像进行边缘检测时,能够有效地抑制噪声,保护边缘细节,提高检测精度。

中值滤波是一种非线性滤波,我们采用的窗口形状为3*3方形,其算法为:

(1)将模板在图像中漫游,并将模板中心与图像中某个像素的位置重合。

(2)读取模板下对应像素的灰度值,设这些灰度值为[[x0, x1, x2], [x3, x4, x5], [x6, x7, x8]],把9个灰度值按值的大小顺序排列。

(3)找出排在中间的一个值,设为y4 = Med{x0, x1, ..., x7, x8},将y4赋给对应模板中心位置的像素。这里Med表示窗口内所有的数按从小到大的次序排列后,取其中值的运算。

经过中值滤波后,图像噪声被去除,而且图像边缘保护得比较好,在运用基于膨胀运算的边缘提取算法对图像进行膨胀运算,使图像边缘上的灰度得到加强,再用膨胀后的图像减去原图像,从而得到图像的边缘。膨胀运算可以填平图像中小孔和弥合小裂缝。

主要利用了opencv中的三个函数:

// 基于中值滤波的自适应二值化

cvAdaptiveThreshold( gray, binary, max_val, CV_ADAPTIVE_THRESH_MEAN_C, 0, 3, 5 );

// 数学形态学上的膨胀和腐蚀

cvDilate( binary, binary, NULL, 3 ); // 膨胀白色区域

cvErode( binary, binary, NULL, 3 );  // 腐蚀黑色区域

时间: 2024-12-07 10:29:02

图像分割的相关文章

图像分割之(二)Graph Cut(图割)

[email protected] http://blog.csdn.net/zouxy09 上一文对主要的分割方法做了一个概述.那下面我们对其中几个比较感兴趣的算法做个学习.下面主要是Graph Cut,下一个博文我们再学习下Grab Cut,两者都是基于图论的分割方法.另外OpenCV实现了Grab Cut,具体的源码解读见博文更新.接触时间有限,若有错误,还望各位前辈指正,谢谢. Graph cuts是一种十分有用和流行的能量优化算法,在计算机视觉领域普遍应用于前背景分割(Image se

图像分割之(一)概述

图像分割之(一)概述 [email protected] http://blog.csdn.net/zouxy09 所谓图像分割指的是根据灰度.颜色.纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出明显的差异性.我们先对目前主要的图像分割方法做个概述,后面再对个别方法做详细的了解和学习. 1.基于阈值的分割方法 阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每个像素的灰度值与阈值相比较,最后将像素根据比较结果分到

paper 55:图像分割代码汇总

matlab 图像分割算法源码 1.图像反转 MATLAB程序实现如下:I=imread('xian.bmp');J=double(I);J=-J+(256-1); %图像反转线性变换H=uint8(J);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(H); 2.灰度线性变换 MATLAB程序实现如下:I=imread('xian.bmp');subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,5

图像分割系列: 1. graph cuts

写在最前: 对最近的工作进行简要总结,毕竟老了,容易忘. 力求言简意赅,了解思想,不过分深入算法. 这里有两个链接大家参考: 1. https://www.youtube.com/watch?v=HMGX8HXskKk 2. http://blog.csdn.net/zouxy09/article/details/8532111 简介: Graph cuts 也叫图割(复数), 所以从字面上就一个图(图论里的图)可以有多个割,这里的割,指分割,也就是segmetation. 算法的含义就是用图论

DIP大作业---图像分割

数字图像处理课程的大作业,要求如下: 图像分割就是把图像分成若干个特定的.具有独特性质的区域并提出感兴趣目标的技术和过程.它是由图像处理到图像分析的关键步骤.现有的图像分割方法主要分以下几类:基于阈值的分割方法.基于区域的分割方法.基于边缘的分割方法以及基于特定理论的分割方法等.图像分割后提取出的目标可以用于图像语义识别,图像搜索等等领域.要求1:输入一副真彩色RGB图像dog.jpg,完成对小狗的分割,输入结果为只包含小狗区域的二值图(matlab环境下,小狗区域值为1,其他区域值为0).要求

OpenCV2学习笔记(四):两种图像分割方法比较

此次研究两种图像分割法,分别是基于形态学的分水岭算法和基于图割理论的GrabCut算法.OpenCV均提供了两张算法或其变种.鉴于研究所需,记录一些知识点,开发平台为OpenCV2.4.9+Qt5.3.2. 一.使用分水岭算法进行图像分割 分水岭变换是一种常用的图像处理算法,在网上很容易搜到详细的原理分析.简单来说,这是一种基于拓扑理论的数学形态学的图像分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水

灰度图像--图像分割 霍夫变换(Hough Transform)--直线

学习DIP第50天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 废话开始,要过年了,到处人心惶惶,沉下心写篇博客,下一篇就等农历新年以后了.马上新年了,希望自己在新年能提高技术,找到一份图像处理的好工作,也希望大家都能学习到更多的知识,做自己喜欢做的事情. 以前基本每天都写博客,坚持了三个月感觉确实有提

[家里蹲大学数学杂志]第054期图像分割中的无边缘活动轮廓模型

$\bf 摘要$: 本文给出了王大凯等编的<图像处理中的偏微分方程方法>第 4.4 节的详细论述. $\bf 关键词$: 图像分割; 活动轮廓模型; matlab 编程 1 模型的建立 在图像中, 对象与背景的区别有时表现为平均灰度的明显不同. 由于这类图像既没有明显的边缘 ($\sev{\n I}$ 大), 也缺乏明显的纹理 (texture, 灰度变化有一定的规律, 并形成一定的 patten), 故测地线活动轮廓 (geodesic active contour, GAC, 或 snak

图像分割综述

图像分割 一.基于灰度值的不连续性(边界分割) 1.基于边缘检测 1)并行边界分割 梯度算子:Roberts.Prewitt.Sobel.Log.Laplacian... 2)串行边界分割 边界跟踪 二.基于灰度值的相似性(区域分割) 1.并行区域分割 1)阈值分割:直方图法(双峰法).最大类间差(Otsu).聚类方法...(目标的像素点的灰度值和属于背景的像素点的灰度值有明显的差别) 2)分裂合并法 2.串行区域分割 1)区域生长 2)松弛迭代法 三.与特定理论结合的图像分割算法 1)基于形态

图像分割之(三)从Graph Cut到Grab Cut

[email protected] http://blog.csdn.net/zouxy09 上一文对GraphCut做了一个了解,而现在我们聊到的GrabCut是对其的改进版,是迭代的Graph Cut.OpenCV中的GrabCut算法是依据<"GrabCut" - Interactive Foreground Extraction using Iterated Graph Cuts>这篇文章来实现的.该算法利用了图像中的纹理(颜色)信息和边界(反差)信息,只要少量的用