OpenCV k означает двоичное изображение

#opencv #k-means #binary-image

Вопрос:

Я пытаюсь использовать функцию opencv kmeans в двоичном изображении, но я не знаю, как настроить ее параметры.

Моя конечная цель-найти два центра большого двоичного объекта.

binary_image_файлы

     vector<Point2f> centers;
    Mat points;

    findNonZero(binary_image, points);
    points.convertTo(points, CV_32F);



    kmeans(points, overlapped, Mat(), TermCriteria( TermCriteria::EPS TermCriteria::COUNT, 10, 1.0), 3,
    KMEANS_PP_CENTERS, centers );
 

Первый параметр требует определенного формата. Поэтому я попытался это исправить, но в нем есть ошибка

На самом деле, я не знаю, как конкретно использовать функцию Kmeans в двоичном изображении.

Можете ли вы помочь мне, как им пользоваться?

Ответ №1:

     vector<Point2f> centers;
    Mat points;
    Mat labels;
    findNonZero(temp, points);
    points.convertTo(points, CV_32F);


    
    kmeans(points, overlapped, labels, TermCriteria( TermCriteria::EPS TermCriteria::COUNT, 10, 1.0), 3,
    KMEANS_PP_CENTERS, centers );
 

Это была простая проблема.
Я изменил третьи параметры.

Спасибо!