Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Opencv:获取图像中的片段大小并删除小片段_Android_Opencv_Image Processing_Image Segmentation - Fatal编程技术网

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

Android Opencv:获取图像中的片段大小并删除小片段,android,opencv,image-processing,image-segmentation,Android,Opencv,Image Processing,Image Segmentation,我是openCV(Android上)的新手,找不到对二值图像进行基本分割的方法,无法获得片段(黑色像素)大小,然后从给定阈值的图像中删除小片段。注意,我不需要只找到轮廓,我需要得到完整的连接像素(段)大小。然后过滤小的 下面是示例图像 我用findContours解决了这个问题(多亏@Mika推我) 下面是我需要的部件的代码示例。 1.我做了二值图像的反转,因为我需要得到黑色片段 2.分段: Imgproc.findContours(mat, contours, mHierarchy

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

下面是示例图像


我用findContours解决了这个问题(多亏@Mika推我)

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



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

  • 删除小片段

    each=等高线。迭代器(); while(each.hasNext()){ MatOfPoint包装器=each.next(); 双面积=Imgproc.轮廓面积(包装器);
    如果(区域findContours有什么问题吗?1.它只画线条我不确定用这些参数找到轮廓Imgproc.RETR\u LIST,Imgproc.CHAIN\u APPROX\u NONE获得的是不是所有像素的分段计数?2.它似乎不能过滤小分段,或者至少不能将分段从一个图像复制到另一个图像。如果你能给我一个例子,我可以告诉你在找到轮廓后尝试函数contourArea()会很有帮助;)我用contourArea得到一些值,但我不确定它们是否正确,因为在有轮廓的图像上我看到许多未闭合的轮廓
    
    
        Imgproc.drawContours(newImg, contours, -1, new Scalar(0, 0, 0), 1);
        Imgproc.fillPoly(newImg, contours, new Scalar(0, 0, 0));