Opencv:获取图像中的段大小并删除小段

Opencv: Get segments sizes in image and remove small segments

我是 openCV 的新手(在 Android),找不到对二值图像进行基本分割并获取片段(黑色像素)大小,然后删除小片段的方法来自具有给定阈值的图像。请注意,我不需要只找到轮廓,我需要获得完全连接的像素(段)大小。之后过滤小的。

示例图片如下

binary image

我用 findContours 解决了它(感谢@Micka 推动我)。

这是我需要的部分的代码示例。 1.我做了二值图像的反演,因为我需要得到黑段
2.分割:



    Imgproc.findContours(mat, contours, mHierarchy, Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_NONE);

  1. 删除小片段 </p> <p>每个=contours.iterator(); 而 (each.hasNext()) { MatOfPoint 包装器 = each.next(); 双区域 = Imgproc.contourArea(包装器); 如果(面积 <= 长度阈值){ each.remove(); } }</p></li> </ol> <p> 4. 绘制新的图像段

    
    
        Imgproc.drawContours(newImg, contours, -1, new Scalar(0, 0, 0), 1);
        Imgproc.fillPoly(newImg, contours, new Scalar(0, 0, 0));