From b1be9c67f386b88144fa505d19ab89a08da047c8 Mon Sep 17 00:00:00 2001 From: Li Zhang Date: Fri, 17 Feb 2023 18:33:38 +0800 Subject: [PATCH] [Fix] Fix palette generation on opencv-3.x (#1778) --- demo/csrc/cpp/utils/palette.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/demo/csrc/cpp/utils/palette.h b/demo/csrc/cpp/utils/palette.h index 03d76a436..1dfa3f34c 100644 --- a/demo/csrc/cpp/utils/palette.h +++ b/demo/csrc/cpp/utils/palette.h @@ -79,9 +79,11 @@ inline Palette Palette::get(int n) { for (auto& x : samples) { x = {(float)uniform_dist(gen), (float)uniform_dist(gen), (float)uniform_dist(gen)}; } - std::vector centers; - cv::kmeans(samples, n, indices, cv::TermCriteria(cv::TermCriteria::Type::COUNT, 10, 0), 1, - cv::KMEANS_PP_CENTERS, centers); + std::vector centers(n); + cv::Mat c_mat(centers, false); + cv::Mat s_mat(samples, false); + cv::kmeans(s_mat, n, indices, cv::TermCriteria(cv::TermCriteria::Type::COUNT, 10, 0), 1, + cv::KMEANS_PP_CENTERS, c_mat); Palette p; for (const auto& c : centers) { p.data.emplace_back((uchar)c.x, (uchar)c.y, (uchar)c.z);