Opencv 忽略边界的颜色反褶积后识别正像素
我正在分析用特定蛋白质标记物染色的组织学图像,我想确定该标记物的阳性像素。我的问题是,对图像进行阈值处理会产生太多的误报,我想排除这些误报 我正在使用颜色反褶积(Opencv 忽略边界的颜色反褶积后识别正像素,opencv,computer-vision,scikit-image,Opencv,Computer Vision,Scikit Image,我正在分析用特定蛋白质标记物染色的组织学图像,我想确定该标记物的阳性像素。我的问题是,对图像进行阈值处理会产生太多的误报,我想排除这些误报 我正在使用颜色反褶积(separate_stainsfromskimage.color)来获得AEC通道(对应于红色标记),将其与背景(苏木精蓝色)分离,并应用cv2 Otsu阈值来使用cv2.threshold>识别正像素(blur,0255,cv2.THRESH_BINARY+cv2.THRESH_OTSU),但它也在拾取组织边界(参见示例图片中的白线,
separate_stains
fromskimage.color
)来获得AEC通道(对应于红色标记),将其与背景(苏木精蓝色)分离,并应用cv2 Otsu阈值来使用cv2.threshold>识别正像素(blur,0255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
,但它也在拾取组织边界(参见示例图片中的白线,有时它甚至具有非白色的随机颜色),有时甚至是非阳性细胞(示例图片中的蓝色区域).它还缺少一些我想捕捉的微弱的正像素
总体而言:(1)如何过滤假阳性组织边界和蓝色像素?以及(2)如何调整大津阈值以捕获微弱的红色阳性
添加修改后的示例图像-
将来,您可以添加新示例和新案例,而无需代码重构:只需更新数据集和重新培训模型。我最终将Chris给出的一些反馈合并到以下可能的非常规解决方案中,我希望获得反馈(针对以下具体问题,以及改进或更有效/准确的工具或策略的一般建议):
除此之外,对数转换似乎效果不好,因为它产生了大量拉伸的亮段,而不仅仅是细胞所在的圆形斑点。我不确定为什么会发生这种情况。有几个问题会导致不正确的量化。我将详细介绍我建议您如何解决这些问题幻灯片 我之所以使用,是因为我对它最熟悉(我是作者)。它有Python绑定,我在这里使用,但这些绑定不能与
pip
一起安装,库需要单独安装。但是,这些都不是复杂的图像处理,您应该能够与其他库进行类似的处理
加载图像
这里没有什么特别的,除了图像有强烈的JPEG压缩伪影,这会干扰斑点分解。我们通过使用一个小的高斯滤波器平滑图像来帮助处理
将PyDIP作为dip导入
将numpy作为np导入
image=dip.ImageRead('example.png')
image=dip.Gauss(image[1])#因为JPEG压缩伪影严重
色斑分解
[个人注释:我发现很不幸,该研究的作者Ruifrok和Johnston称之为“反褶积”,因为该术语在图像处理中已经有了明确的含义,特别是在与显微镜的结合中。我总是将其称为“染色分解”,而不是“反褶积”。]
这应该始终是从bightfield图像量化的第一步。这里需要确定三个重要的RGB三元组:背景的RGB值(即光源的亮度)和每个污点的RGB值。分解过程有两个部分:
首先我们应用映射。这个映射