OpenCV层次结构细胞分割

时间:2014-08-13 13:53:36

标签: opencv cell hierarchy segment

我用Matlab分离了两种类型的单元格,但是我使用OpenCV创建了所有代码。使用OpenCV,我使用此代码用我的单元标记我的单元格:

for( int j = 0; j< contours_cropped.size();  j=hierarchy[j][0]  )
{
    if( hierarchy_cropped[j][2] > 0  )
    {
        putText(src,"RBC",Point(Coord.x,Coord.y), FONT_HERSHEY_COMPLEX_SMALL, 1,CV_RGB(255,255,255),1);
    }
    else
    {
        putText(src,"WBC",Point(Coord.x,Coord.y), FONT_HERSHEY_COMPLEX_SMALL, 1,CV_RGB(255,255,255),1);

    }

您可以看到我的阈值和二进制图像要分段:Binary Image

左边的单元格是WBC,代码只放入WBC,所以这是正确的。 所以我的问题是代码将WBC和RBC都放到右侧单元格中。我想只把RBC放在正确的细胞上。如何分割这两种类型的细胞?

1 个答案:

答案 0 :(得分:0)

我至少看到了更多的理由:

  • 在RBC案例中,你有超过2个轮廓(我认为WBC也是如此)。我想你应该检查图像中的所有轮廓,如果有一个层次结构&gt; 0然后是RBC
  • hierarchy_cropped[j][2]并非总是&gt; 0,所以你在每张图片上都写了RBC和WBC

我认为你只会写一次,而不是每个轮廓(使用bool标志)