图像分割中的轮廓完整性补全

4
我正在尝试使用机器学习(即随机森林)进行图像分割。分类器利用许多不同的像素级特征将像素分类为边缘像素或非边缘像素。我最近将分类器应用于一组相当难以手动分割的图像(基于边缘像素映射的图像分割),并且仍在努力从结果概率图中获得合理的轮廓。我还将分类器应用于一组更容易的图像,并在将阈值调整为0.95时获得了相当好的预测轮廓(Rand指数> 0.97)。我有兴趣通过过滤从概率图中提取的轮廓来改善分割结果。
这是原始图像:

Original image

专家概述:

Expert Outlines

从我的分类器生成的概率图:

enter image description here

当我将图像基于0.95的阈值转换为二进制时,这可以进一步优化:

enter image description here

我尝试填补概率图中的空洞,但这留下了很多噪声,有时会合并附近的单元格。我还尝试使用openCV进行轮廓查找,但这也不起作用,因为许多轮廓并不完全连接 - 在轮廓线上会有一些像素缺失。
编辑:最终我使用了Canny边缘检测来处理概率图。
1个回答

5

初始图像看起来对比度良好,我们可以简单地阈值处理以获得细胞的良好估计。这是基于形态学区域的阈值图像滤波:

阈值:Threshold at 10

基于区域的开放过滤器(这需要根据您的研究中的细胞数据集进行设置):Size smaller than 2500 pixels removed

基于区域的闭合过滤器(这需要根据您的研究中的细胞数据集进行设置):enter image description here

使用I-Erosion(I)的轮廓线:enter image description here

代码片段:

C is input image
C10 = C>10; %threshold depends on the average contrast in your dataset
C10_areaopen = bwareaopen(C10,2500); %area filters average remove small components that are not cells
C10_areaopenclose = ~bwareaopen(~C10_areaopen,100); %area filter fills holes 
se = strel('disk',1);
figure, imshow(C10_areaopenclose-imerode(C10_areaopenclose,se)) %inner contour

为了得到更加平滑的形状,我想可以对过滤后的图像进行细微的开运算,从而去除细胞的任何凹陷部分。此外,对于连接在一起的细胞,可以使用距离函数和距离函数上的分水岭来获得细胞的分割:http://www.ias-iss.org/ojs/IAS/article/viewFile/862/765。我认为这种方法也可以用于概率/置信度图像的非线性面积滤波。

谢谢!您能详细解释一下我如何在概率图上使用这种方法吗? - eagle34
1
您可以尝试使用孔填充(holefilling)填充概率地图的轮廓:imfill,并像原始解决方案中所示使用基于面积的过滤! - beedot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接