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

时间:2015-12-07 09:11:24

标签: android opencv image-processing image-segmentation

我是openCV的新用户(在Android上),无法找到对二进制图片进行基本分割的方法,并获取段(黑色像素)大小,然后从图像中删除小段给定的门槛。请注意,我不需要只是找到轮廓,我需要获得完整的连接像素(段)大小。之后过滤掉小的。

示例图片位于

之下

binary image

1 个答案:

答案 0 :(得分:0)

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

以下是我需要的部件的代码示例。 我做了二进制图像的反转,因为我需要得到黑色的段 2.细分:



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

  1. 删除小段

    each = contours.iterator(); while (each.hasNext()) { MatOfPoint wrapper = each.next(); double area = Imgproc.contourArea(wrapper); if(area <= lengthThreshold){ each.remove(); } }

  2. 4.使用片段绘制新图像

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