2012-04-18 71 views
2

我目前正在开展一个项目,在该项目中,我必须区分正常细胞和患病细胞。我所看到的具体异常表明,细胞核应该有一定的面积​​,大部分是圆形的。我目前使用scipy,numpy和PIL来确定原子核的存在(见下图)......但我不确定如何确定这个区域,因为原子核并不总是一个完美的圆。有什么建议么?基于区域的状态图像检测和验证

Original Image before processing

Original Image before processing

Only nuclei are shown

Only nuclei are shown (Mapped Image)

+1

因为你已经有了一个很好的细分(你快到了!) - 我只是对每种颜色使用一个阈值(0/1) - 所以你只用一个粒子就得到一张黑色图片,然后添加增加值,所以你有这个区域(以像素为单位)。如果您需要“真实”区域,则需要使用相机校准/参考物体。 您可能想要研究形状因子/紧致度量。如果你有多个相同颜色的粒子,这是行不通的。然后,看看播种。 – 2012-04-18 07:25:15

+0

你也可以看看这个漂亮的教程 [pythonvision.org](http://pythonvision.org/basic-tutorial) “拍下这张照片并计算核数” 以及[cellprofiler](http ://www.cellprofiler.org) “免费的开源软件,旨在使生物学家能够自动地定量测量成千上万个图像的表型” “。 我还没有使用过这些。 – denis 2012-04-20 13:56:34

回答

2

如果你知道你的图像的缩放比例,则仅计算落在单元区域内的像素数。然后,该数字除以图像中的像素总数,即可得出单元占用的图像区域的比例。如果你知道你的图像分辨率,那么你应该知道那个矩形图像域的面积。将两者相乘以获得细胞区域。 (a)如果细分不良(b)如果细胞被拉长(差异等比例商)并且舍入包括/排除细胞边界像素则很重要,或者(c)如果细分不良细胞永远处于阴影中/未在正确的平面上观察到以产生其横截面积。但希望您的实验包含足够的数据,您可以放弃这些数据。

0

通过计算你得到的区域内的每个颜色的像素,如果你已经标注您的数据如下:

data = np.array([[0,0,1,1,1], 
       [2,2,1,1,1], 
       [2,3,3,3,3], 
       [2,4,4,3,3]]) 

比你可以使用numpy.bincount()来计算每个标签:

print numpy.bincount(data.ravel()) 

输出为:

array([2, 6, 4, 6, 2]) 

这意味着有两个0,六1,四个2,6个3,和两个4