4

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

这是原始图像:

原始图像

专家概述:

专家大纲

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

在此处输入图像描述

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

在此处输入图像描述

我尝试在概率图中填充漏洞,但这给我留下了很多噪音,有时还会合并附近的单元格。我也尝试在 openCV 中寻找轮廓,但这也不起作用,因为这些轮廓中的许多轮廓都没有完全连接——轮廓中到处都会丢失一些像素。

编辑:我最终在概率图上使用了 Canny 边缘检测。

4

1 回答 1

5

初始图像似乎对比良好,我想我们可以简单地设置阈值来获得对细胞的良好估计。这是阈值图像的基于形态区域的过滤:

临界点:阈值 10

基于区域的开放过滤器(这需要根据您正在研究的细胞数据集进行设置):已删除小于 2500 像素的大小

基于区域的关闭过滤器(这需要根据您正在研究的细胞数据集进行设置):在此处输入图像描述

使用 I-Erosion(I) 的轮廓:在此处输入图像描述

代码片段:

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

我想这也可以用于您的概率/置信度图来执行基于非线性区域的过滤。

于 2013-11-02T03:14:02.773 回答