主要内容

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

这个例子展示了如何使用边缘检测和基本形态学来检测细胞。如果物体与背景有足够的对比度,就可以很容易地在图像中检测到物体。

第一步:阅读图片

阅读cell.tif这是一个前列腺癌细胞的图像。这张图中有两个细胞,但只有一个细胞可以完整地看到。目标是检测或分割完全可见的细胞。

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

图包含一个轴对象。标题为Original Image的坐标轴对象包含3个类型为Image, text的对象。

步骤2:检测整个细胞

待分割的目标与背景图像的对比度差别很大。对比度的变化可以通过计算图像梯度的算子来检测。要创建包含分割单元的二进制掩码,请计算梯度图像并应用阈值。

使用边缘和Sobel算子计算阈值。调优阈值和使用边缘再次获得包含分割单元的二进制掩码。

[~,threshold] = edge(I,“索贝尔”);fudgeFactor = 0.5;BWs = edge(I,“索贝尔”,threshold * fudgeFactor);

显示产生的二元梯度掩码。

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

图包含一个轴对象。标题为二元梯度蒙版的坐标轴对象包含一个图像类型的对象。

步骤3:放大图像

二值梯度掩模在图像中显示出高对比度的线条。这些线条并不能完全描绘出感兴趣的对象的轮廓。与原始图像相比,渐变蒙版中物体周围的线条存在间隙。如果使用线性结构元素对索贝尔图像进行扩展,这些线性间隙将消失。创建两个垂直的线性结构元素strel函数。

Se90 = strel()“行”, 90);Se0 = strel()“行”3 0);

使用垂直结构元素扩展二元梯度掩模,然后是水平结构元素。的imdilate函数放大图像。

BWsdil = imdilate(BWs,[se90 se0]);imshow (BWsdil)标题(“放大渐变蒙版”

图包含一个轴对象。标题为“扩展渐变蒙版”的轴对象包含一个图像类型的对象。

第四步:填充内部空隙

放大后的梯度掩膜很好地显示了细胞的轮廓,但细胞内部仍有孔。要填满这些洞,用imfill函数。

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

图包含一个轴对象。标题为Binary Image with Filled Holes的坐标轴对象包含一个Image类型的对象。

步骤5:移除边界上的连接对象

感兴趣的细胞已经被成功分割,但它不是唯一被发现的对象。连接到图像边界的任何对象都可以使用imclearborder函数。如果需要拆除对角线连接,请在imclearborder函数4

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

图包含一个轴对象。标题为Cleared Border Image的axes对象包含一个Image类型的对象。

第六步:使物体光滑

最后,为了使分割的对象看起来自然,通过使用菱形结构元素两次侵蚀图像来平滑对象。创建菱形结构元素strel函数。

b = n = n“钻石”1);BWfinal = imerosion (bwnoboard,seD);BWfinal = imerosion (BWfinal,seD);imshow (BWfinal)标题(“分割图像”);

图包含一个轴对象。标题为Segmented Image的坐标轴对象包含一个Image类型的对象。

步骤7:可视化分割

你可以使用labeloverlay在原始图像上显示掩码的功能。

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

图包含一个轴对象。标题为Mask Over Original Image的axes对象包含一个Image类型的对象。

显示分割对象的另一种方法是围绕分割单元格绘制轮廓。画一个轮廓线bwperim函数。

BWoutline = bwperim(BWfinal);Segout = I;Segout(BWoutline) = 255;imshow (Segout)标题(“原始轮廓图”

图包含一个轴对象。标题为outline Original Image的axes对象包含一个Image类型的对象。

另请参阅

||||||

相关的话题

Baidu
map