我是openCV的新用户(在Android上),无法找到对二进制图片进行基本分割的方法,并获取段(黑色像素)大小,然后从图像中删除小段给定的门槛。请注意,我不需要只是找到轮廓,我需要获得完整的连接像素(段)大小。之后过滤掉小的。
示例图片位于
之下答案 0 :(得分:0)
我用findContours解决了它(感谢@Micka推动我)。
以下是我需要的部件的代码示例。 我做了二进制图像的反转,因为我需要得到黑色的段 2.细分:
Imgproc.findContours(mat, contours, mHierarchy, Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_NONE);
删除小段
each = contours.iterator();
while (each.hasNext()) {
MatOfPoint wrapper = each.next();
double area = Imgproc.contourArea(wrapper);
if(area <= lengthThreshold){
each.remove();
}
}
醇>
4.使用片段绘制新图像
Imgproc.drawContours(newImg, contours, -1, new Scalar(0, 0, 0), 1);
Imgproc.fillPoly(newImg, contours, new Scalar(0, 0, 0));