Как подключить компоненты со статистикой в ​​android java с помощью opencv и как использовать эту статистику для получения левой точки, правой точки, центроида, площади и т. Д. - PullRequest
0 голосов
/ 21 июня 2020

Пожалуйста, очистите, я новичок в 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.

1 Ответ

0 голосов
/ 21 июня 2020

Спасибо, ребята, отвечаю на свой вопрос. Я нашел, как это сделать. int a = Imgproc.connectedComponentsWithStats(image,labels,stats,centroid); эта функция возвращает целое число, которое представляет собой количество подключенных компонентов в изображении (Mat OpenCV), которое передается функции (первый аргумент).

labels - это массив типов данных Mat, который имеет размер входного изображения со значением каждого пикселя является меткой этого пикселя в исходном изображении

центроид - это центроид каждой метки (x, y).

stats сообщает нам площадь метки и положение метки (вернуть крайний левый пиксель, самый верхний пиксель, ширина, высота)

...