【问题标题】:OpenCV Assertion Error mat.hpp line 570OpenCV 断言错误 mat.hpp 第 570 行
【发布时间】:2015-12-26 07:25:51
【问题描述】:

当我尝试实现此代码以调用所有稍后使用的颜色时.. 它显示错误.. 有谁知道此代码有什么问题.. 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)));
    }

【问题讨论】:

    标签: c++ visual-studio opencv


    【解决方案1】:

    矩阵color 是一个 1x1 矩阵,有 3 个通道,所以你应该访问为:

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

    您应该在构造标量时以类似方式访问它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 2017-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多