首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算机视觉:如何在计数细胞时清除碎片?

计算机视觉:如何在计数细胞时清除碎片?
EN

Stack Overflow用户
提问于 2016-06-28 05:18:03
回答 1查看 296关注 0票数 1

我正在尝试使用python来计算图像中的一些细胞。我或多或少地遵循了教程here。在阈值步骤之后,我找到区域最大值并对它们进行计数。这对于计算细胞核非常有效,但是也有一些假阳性,包括死亡细胞和我不想计算的细胞碎片。我使用的代码如下:

代码语言:javascript
复制
import mahotas as mh
import numpy as np
from matplotlib import pyplot as plt

dna = mh.imread('img.jpg')
dna = dna[:,:,0]

dnaf = mh.gaussian_filter(dna.astype(float), 4)
maxima = mh.regmax(mh.stretch(dnaf))
maxima = mh.dilate(maxima, np.ones((5,5)))
plt.imshow(mh.as_rgb(np.maximum(255*maxima, dnaf), dnaf, dna > T_mean))
plt.show()

图片如下所示。死亡细胞在底部的右下角,就在中心的左边。假阳性是大的红色斑点

有没有什么办法可以过滤掉这些假阳性?我尝试过获取所有区域的大小,并根据大小进行过滤,但一旦我采用区域最大值,结果看起来就很奇怪。

代码语言:javascript
复制
dnaf = mh.gaussian_filter(dna.astype(float), 4)
sizes = mh.labeled.labeled_size(dnaf)
too_small = np.where(sizes < 800)
dnaf = mh.labeled.remove_regions(dnaf, too_small)
maxima = mh.regmax(mh.stretch(dnaf))
maxima = mh.dilate(maxima, np.ones((5,5)))
plt.imshow(mh.as_rgb(np.maximum(255*maxima, dnaf), dnaf, dna > T_mean))
plt.show()    

这只消除了其中一个假阳性,并在其他几个位置扭曲了图像(见下文),使我认为我做错了什么。

同样,这张图片与第一张图片的位置不同,但与原始图片相比,它看起来失真了,死亡细胞碎片仍然存在,所以我确定我做得不对。

所以我的问题是,使用python从图像中去除小碎片/死细胞的最佳方法是什么,以便获得更好的细胞计数估计?

EN

回答 1

Stack Overflow用户

发布于 2016-06-28 14:59:55

我认为你必须从原始图像开始,以识别假阳性。标记死细胞和其他假阳性的位置,并记录它们产生的斑点的几何属性。如果像大小这样的属性可以显示出明显的差异,那么您就可以很容易地区分它们。

另一种选择是更改参数,如高斯滤波器大小和膨胀操作符大小。

如果这些都不起作用,推荐的选择是使用大量的显微图像,并基于它们训练机器学习系统。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38063419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档