OpenCV断言错误mat.hpp第570行

OpenCV Assertion Error mat.hpp line 570

本文关键字:570行 hpp mat 断言 错误 OpenCV      更新时间:2023-10-16

当我尝试实现此代码以调用稍后使用的所有颜色时。。它显示了一个错误。。有人知道这个代码出了什么问题吗。。tq

// Extracting pure colors to use in demo
    const int ncolors = 16;
    std::vector<Scalar> colors;
    for (int n = 0; n < ncolors; ++n) {
        Mat color(Size(1, 1), CV_32FC3);
        color.at<float>(0) = (360) / ncolors * n;
        color.at<float>(1) = 1.0;
        color.at<float>(2) = 0.7;
        cvtColor(color, color, CV_HSV2BGR);
        color = color * 255;
        colors.push_back(Scalar(color.at<float>(0), color.at<float>(1), color.at<float>(2)));
    }

矩阵color是一个有3个信道的1x1矩阵,因此您应该访问为:

color.at<Vec3f>(0)[0] = 360.f / ncolors * n;
color.at<Vec3f>(0)[1] = 1.f;
color.at<Vec3f>(0)[2] = 0.7f;

在构造Scalar时,应该以类似的方式访问它。