主要内容

检测细胞使用边缘检测和形态学

这个例子展示了如何使用边缘检测和检测细胞的基本形态。一个对象可以很容易地检测到一个图像如果对象从背景有足够的对比。

步骤1:读取图像

读的cell.tif形象,这是一种前列腺癌细胞的形象。两个细胞出现在这张照片,但只有一个细胞中可以看到。目标是检测,或部分,细胞是完全可见的。

我= imread (“cell.tif”);imshow (I)标题(原始图像的);文本(大小(我,2),大小(我,1)+ 15,图片由阿兰追踪的,“字形大小”7“HorizontalAlignment”,“对”);文本(大小(我,2),大小(我,1)+ 25,约翰霍普金斯大学的,“字形大小”7“HorizontalAlignment”,“对”);

图包含一个坐标轴对象。坐标轴对象与标题原始图像包含三类型的对象图像,文本。

第二步:检测整个细胞

的对象从背景图像分割对比差别很大。对比变化可以探测到运营商,计算图像的梯度。创建一个包含分段二进制掩模细胞,计算梯度图像并应用一个阈值。

使用边缘索贝尔算子来计算阈值。调整阈值和使用边缘再次获得一个包含分段二进制掩膜细胞。

[~,阈值]=边缘(我“索贝尔”);fudgeFactor = 0.5;受虐妇女综合症=边缘(我“索贝尔”阈值* fudgeFactor);

显示生成的二进制梯度面具。

imshow(受虐妇女综合症)标题(“二元梯度面具”)

图包含一个坐标轴对象。坐标轴对象与标题二元梯度面具包含一个类型的对象的形象。

步骤3:扩张的形象

二元梯度面具显示行高对比度的图像。这些线不太感兴趣的描绘对象的轮廓。原始图像相比,差距在物体周围的线梯度面具。这些线性差距将会消失如果Sobel图像扩张使用线性结构元素。通过使用创建两个垂直的线性结构元素strel函数。

se90 = strel (“行”,90);se0 = strel (“行”3 0);

扩张的二进制梯度面具使用垂直结构元素随后水平结构元素。的imdilate函数扩张的形象。

BWsdil = imdilate(受虐妇女综合症,[se90 se0]);imshow (BWsdil)标题(“扩张梯度面具”)

图包含一个坐标轴对象。坐标轴对象与标题扩张梯度面具包含一个类型的对象的形象。

步骤4:内部差距

扩张梯度面具显示细胞的轮廓很好,但仍有洞的内部细胞。来填补这些漏洞,使用imfill函数。

BWdfill = imfill (BWsdil,“黑洞”);imshow (BWdfill)标题(的二进制图像填充孔”)

图包含一个坐标轴对象。坐标轴对象与标题二进制图像填充孔包含一个类型的对象的形象。

第五步:删除连接对象边界

感兴趣的细胞已经成功地分割,但它不是唯一的对象,被发现。任何对象连接到图像的边界可以被使用imclearborder函数。消除对角线连接,设置的连接imclearborder函数4

BWnobord = imclearborder (BWdfill 4);imshow (BWnobord)标题(“清除边界图像”)

图包含一个坐标轴对象。标题清除边界图像的坐标轴对象包含一个类型的对象的形象。

第六步:光滑的物体

最后,为了使分割对象看起来自然,光滑的物体通过侵蚀图像与钻石结构元素的两倍。创建使用金刚石结构元素strel函数。

seD = strel (“钻石”1);BWfinal = imerode (BWnobord, seD);BWfinal = imerode (BWfinal, seD);imshow (BWfinal)标题(“分割图像”);

图包含一个坐标轴对象。标题分割图像的坐标轴对象包含一个类型的对象的形象。

第七步:可视化分割

您可以使用labeloverlay函数显示原始图像的面具。

imshow (labeloverlay(我BWfinal)标题(“面具对原始图像的)

图包含一个坐标轴对象。坐标轴对象与标题面具在原始图像包含一个类型的对象的形象。

另一种方法来显示分割对象是细胞周围画一个轮廓分段。画一个轮廓通过使用bwperim函数。

BWoutline = bwperim (BWfinal);Segout =我;Segout (BWoutline) = 255;imshow (Segout)标题(概述了原始图像的)

图包含一个坐标轴对象。坐标轴对象与标题列出原始图像包含一个类型的对象的形象。

另请参阅

||||||

相关的话题