如何使用 opencv 在 android java 中获取具有统计信息的连接组件,以及如何使用这些统计信息获取左点、右 pint、质心、面积等

How to get connectedComponents with stats in android java using opencv and how to use these stats to get left point, right pint, centroid, area etc

请明确我是 android 和 java 的新人 我用过这段代码,但不知道这四个变量是什么意思 Imgproc.connectedComponentsWithStats(binarized, labeled, rectComponents, centComponents);


        Mat tmp = new Mat(bmp.getWidth(), bmp.getHeight(), CvType.CV_8U);

        Utils.bitmapToMat(bmp, tmp);

        Imgproc.cvtColor(tmp, tmp, Imgproc.COLOR_RGB2GRAY);

        Imgproc.threshold(tmp, tmp, 40, 255, Imgproc.THRESH_BINARY);

        Imgproc.GaussianBlur(tmp, tmp, new org.opencv.core.Size(5, 5), 0 ,  0);

        Imgproc.threshold(tmp,tmp,130,255,Imgproc.THRESH_OTSU);

        Utils.matToBitmap(tmp, bmp);
        imageView.setImageBitmap(bmp);```

I want to get connected components with stats of tmp.

谢谢大家,我正在回答我自己的问题。我找到了怎么做。 int a = Imgproc.connectedComponentsWithStats(image,labels,stats,centroid); 这个函数return是一个整数,它是传递给函数(第一个参数)的图像(Mat OpenCV)中连通分量的数量。

labels 是一个 Mat 数据类型数组,其大小与输入图像相同,每个像素的值是原始图像中该像素的标签

质心是每个标签 (x,y) 的质心。

stats 告诉我们标签的面积和标签的位置(return 最左边的像素,最上面的像素,宽度,高度)