基于阈值分割的细胞图像分割

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于阈值分割的细胞图像分割与计数

摘要

在临床实验中,会出现很多细胞计数问题,我们的目的是制作一个自动的系统,对多细胞的图像进行处理,然后对细胞数目进行自动计数,达到减少人力物力的效果。由于时间有限,这次仅仅讨论各种阈值确定方法对细胞计数准确性的影响。

关键词:细胞图像分割,阈值分割,大津阈值,迭代法,遗传算法

一、引言

细胞图像分割和计数是临床医学中重要的一部分,如果计数准确,将会省去很多的人力物力。对疾病的诊断和治疗有着很大的帮助。细胞图像由于染色

剂和细胞本身流动性等特点,给自动细胞分割和计数带来了困难。所以如何确

定细胞和背景之间的区别,如何处理细胞之间的粘连变成了非常重要的课题。

我们选择了阈值分割的办法,来讨论不同的阈值处理方法对细胞分割准确性的

影响。在尝试了许多方法后选出了比较合理的几种方法对细胞图像进行了分割

处理。给今后的图像分割方法设计打下了基础。

二、阈值分割简介

阈值分割的基本原理:阈值分割法是一种基于区域的图像分割技术,其基本原理是:通过设定不同的特征阈值,把图像象素点分为若干类。常用的特征

包括:直接来自原始图像的灰度或彩色特征;由原始灰度或彩色值变换得到的

特征。设原始图像为f(x,y),按照一定的准则f(x,y)中找到特征值T,可以将

图像分割为两个部分。阈值分割有很多方法,在这里,我们陈列几种对于细胞

分割比较合理的方法。

三、大津阈值分割法(最大类间方差法)

1.大津阈值分割法原理

该算法是日本人Otsu提出的一种动态阈值分割算法。它的主要思想是按照灰度特性将图像划分为背景和目标2部分,划分依据为选取门限值,使得背景

和目标之间的方差最大。(背景和目标之间的类间方差越大,说明这两部分的

差别越大,当部分目标被错划分为背景或部分背景错划分为目标都会导致这两

部分差别变小。因此,使用类间方差最大的分割意味着错分概率最小。)这是

该方法的主要思路。其主要的实现原理为如下:

1)建立图像灰度直方图(共有L个灰度级,每个出现概率为p)

2)计算背景和目标的出现概率,计算方法如下:

上式中假设t为所选定的阈值,A代表背景(灰度级为0~N),根据直方图

中的元素可知,Pa为背景出现的概率,同理B为目标,Pb为目标出现的

概率。

3)计算A和B两个区域的类间方差如下:

2.大津阈值分割法的MATLAB实现

clear;

i=imread('AAA.png');%读入细胞图片

im2=imadjust(i,[.2 .3 0;.6 .7 1],[]); %图像预处理,亮度和对比度调整。

im1=rgb2gray(im2); %将图像转换成灰度图

im1=medfilt2(im1,[3 3]); %中值滤波器去掉盐粒噪声

im1=histeq(im1); %对比度增强

%以上部分都是图像预处理部分的内容。对图像进行预处理能够让之后的图像阈值分割有更好的效果,对计数的准确很有帮助。

level=graythresh(im1); %大津阈值分割

BW=im2bw(im1,level);

se90=strel('line',3,90);

se0=strel('line',3,0);

%以上部分是对图像的大津阈值分割,由于MATLAB工具箱中有大津阈值分割的语句,所以直接写出。

BW1=imdilate(BW,[se90 se0]); %对图像进行膨胀操作

BW2=imerode(BW1,[se90 se0]); %对图像进行腐蚀操作

%以上部分为对图像进行开运算,即先膨胀再腐蚀的操作,有利于将图像中微小的点去除。平滑图像边界。

BW3 = bwareaopen(BW2, 400);

BW3=~BW3;

BW4 = bwareaopen(BW3,400);

BW4=~BW4;

%以上部分为对图像进行去噪处理。将面积小的噪声都去掉。这样处理之后才可以进行计数操作。

k=bwlabel(~BW4); %图像边缘提取

max(max(k)) %计数

lll=jet(89);

m=zeros(size(BW4,1),size(BW4,2),3);

for i=1:89;[r c]=find(k==i);for j=1:length(r);m(r(j),c(j),:)=lll(i,:);end;i,end

%将各个区域填上不同颜色

imshow(m); %显示效果图

%以上部分为对图像进行计数处理,将计数结果表示在图上,方便观看。

3.大津阈值分割法的效果图

原图像经过图像预处理的图像

经过大津阈值分割的图像

经过开运算后的图像

经过去噪处理的图像最终结果的图像

四、迭代法阈值分割

1.迭代法阈值分割原理

迭代法是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代法又分为精确迭代

和近似迭代。迭代算法是用计算机解决问题的一种基本方法。它利用计算机

运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)

进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推

出它的一个新值。

在迭代法细胞图像分割的过程中,我们首先求出图象的最大灰度值和最小灰度值,分别记为ZX和ZD,令初始阈值T=0.5*(ZMAX+ZMIN);然后

根据阈值TK将图象分割为前景和背景,分别求出两者的平均灰度值ZO和ZB,

然后求出新阈值TK+1=(ZO+ZB)/2,若TK=TK+1,则所得即为阈值;否

则重新迭代,直至求出最佳阈值。

2.迭代法阈值分割的MATLAB实现

clear

clc;

tic %计时器

Init=imread('AAA.png');

Im=rgb2gray(Init);

subplot(1,3,1),imhist(Im),title('直方图’)

subplot(1,3,2),imshow(Im),title('原始图像')

%图像的预处理,读入图像等工作,为之后的迭代法阈值分割做好了准备。

[x,y]=size(Im);

b=double(Im);

zd=double(max(max(Im))) %求出最大的灰度

zx=double(min(min(Im))) %求出最小的灰度

T=double((zd+zx))/2; %将T定义为最小和最大灰度的平均值

count=double(0); %记录循环次数

while 1 ¨%迭代法阈值分割算法

count=count+1;

相关文档
最新文档