首页 > 解决方案 > OpenCV kmeans二值图像

问题描述

我正在尝试在二进制图像上使用 opencv kmeans 函数,但我不知道如何设置其参数。

我的最终目标是找到两个 blob 中心。

二进制图像文件

    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 函数。

你能帮我如何使用它吗?

标签: opencvk-meansbinary-image

解决方案


    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 );

这是一个简单的问题。我改变了第三个参数。

谢谢!


推荐阅读